diff options
Diffstat (limited to 'common/thread_calls.c')
-rw-r--r-- | common/thread_calls.c | 177 |
1 files changed, 89 insertions, 88 deletions
diff --git a/common/thread_calls.c b/common/thread_calls.c index 80856fd8..ad944d02 100644 --- a/common/thread_calls.c +++ b/common/thread_calls.c @@ -1,27 +1,22 @@ -/* - Copyright (c) 2004-2010 Jay Sorg - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - thread calls - -*/ +/** + * xrdp: A Remote Desktop Protocol server. + * + * Copyright (C) Jay Sorg 2004-2012 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * thread calls + */ #if defined(_WIN32) #include <windows.h> @@ -38,33 +33,36 @@ /* returns error */ #if defined(_WIN32) int APP_CC -tc_thread_create(unsigned long (__stdcall * start_routine)(void*), void* arg) +tc_thread_create(unsigned long (__stdcall *start_routine)(void *), void *arg) { - int rv = 0; - DWORD thread_id = 0; - HANDLE thread = (HANDLE)0; - - /* CreateThread returns handle or zero on error */ - thread = CreateThread(0, 0, start_routine, arg, 0, &thread_id); - rv = !thread; - CloseHandle(thread); - return rv; + int rv = 0; + DWORD thread_id = 0; + HANDLE thread = (HANDLE)0; + + /* CreateThread returns handle or zero on error */ + thread = CreateThread(0, 0, start_routine, arg, 0, &thread_id); + rv = !thread; + CloseHandle(thread); + return rv; } #else int APP_CC -tc_thread_create(void* (* start_routine)(void *), void* arg) +tc_thread_create(void * (* start_routine)(void *), void *arg) { - int rv = 0; - pthread_t thread = (pthread_t)0; + int rv = 0; + pthread_t thread = (pthread_t)0; - g_memset(&thread, 0x00, sizeof(pthread_t)); + g_memset(&thread, 0x00, sizeof(pthread_t)); - /* pthread_create returns error */ - rv = pthread_create(&thread, 0, start_routine, arg); - if (!rv) { - rv = pthread_detach(thread); - } - return rv; + /* pthread_create returns error */ + rv = pthread_create(&thread, 0, start_routine, arg); + + if (!rv) + { + rv = pthread_detach(thread); + } + + return rv; } #endif @@ -73,9 +71,9 @@ tbus APP_CC tc_get_threadid(void) { #if defined(_WIN32) - return (tbus)GetCurrentThreadId(); + return (tbus)GetCurrentThreadId(); #else - return (tbus)pthread_self(); + return (tbus)pthread_self(); #endif } @@ -85,9 +83,9 @@ int APP_CC tc_threadid_equal(tbus tid1, tbus tid2) { #if defined(_WIN32) - return tid1 == tid2; + return tid1 == tid2; #else - return pthread_equal((pthread_t)tid1, (pthread_t)tid2); + return pthread_equal((pthread_t)tid1, (pthread_t)tid2); #endif } @@ -96,13 +94,13 @@ tbus APP_CC tc_mutex_create(void) { #if defined(_WIN32) - return (tbus)CreateMutex(0, 0, 0); + return (tbus)CreateMutex(0, 0, 0); #else - pthread_mutex_t* lmutex; + pthread_mutex_t *lmutex; - lmutex = (pthread_mutex_t*)g_malloc(sizeof(pthread_mutex_t), 0); - pthread_mutex_init(lmutex, 0); - return (tbus)lmutex; + lmutex = (pthread_mutex_t *)g_malloc(sizeof(pthread_mutex_t), 0); + pthread_mutex_init(lmutex, 0); + return (tbus)lmutex; #endif } @@ -111,13 +109,13 @@ void APP_CC tc_mutex_delete(tbus mutex) { #if defined(_WIN32) - CloseHandle((HANDLE)mutex); + CloseHandle((HANDLE)mutex); #else - pthread_mutex_t* lmutex; + pthread_mutex_t *lmutex; - lmutex = (pthread_mutex_t*)mutex; - pthread_mutex_destroy(lmutex); - g_free(lmutex); + lmutex = (pthread_mutex_t *)mutex; + pthread_mutex_destroy(lmutex); + g_free(lmutex); #endif } @@ -126,11 +124,11 @@ int APP_CC tc_mutex_lock(tbus mutex) { #if defined(_WIN32) - WaitForSingleObject((HANDLE)mutex, INFINITE); - return 0; + WaitForSingleObject((HANDLE)mutex, INFINITE); + return 0; #else - pthread_mutex_lock((pthread_mutex_t*)mutex); - return 0; + pthread_mutex_lock((pthread_mutex_t *)mutex); + return 0; #endif } @@ -138,15 +136,18 @@ tc_mutex_lock(tbus mutex) int APP_CC tc_mutex_unlock(tbus mutex) { - int rv = 0; + int rv = 0; #if defined(_WIN32) - ReleaseMutex((HANDLE)mutex); + ReleaseMutex((HANDLE)mutex); #else - if (mutex != 0) { - rv = pthread_mutex_unlock((pthread_mutex_t *)mutex); - } + + if (mutex != 0) + { + rv = pthread_mutex_unlock((pthread_mutex_t *)mutex); + } + #endif - return rv; + return rv; } /*****************************************************************************/ @@ -154,16 +155,16 @@ tbus APP_CC tc_sem_create(int init_count) { #if defined(_WIN32) - HANDLE sem; + HANDLE sem; - sem = CreateSemaphore(0, init_count, init_count + 10, 0); - return (tbus)sem; + sem = CreateSemaphore(0, init_count, init_count + 10, 0); + return (tbus)sem; #else - sem_t * sem = (sem_t *)NULL; + sem_t *sem = (sem_t *)NULL; - sem = (sem_t *)g_malloc(sizeof(sem_t), 0); - sem_init(sem, 0, init_count); - return (tbus)sem; + sem = (sem_t *)g_malloc(sizeof(sem_t), 0); + sem_init(sem, 0, init_count); + return (tbus)sem; #endif } @@ -172,13 +173,13 @@ void APP_CC tc_sem_delete(tbus sem) { #if defined(_WIN32) - CloseHandle((HANDLE)sem); + CloseHandle((HANDLE)sem); #else - sem_t* lsem; + sem_t *lsem; - lsem = (sem_t*)sem; - sem_destroy(lsem); - g_free(lsem); + lsem = (sem_t *)sem; + sem_destroy(lsem); + g_free(lsem); #endif } @@ -187,11 +188,11 @@ int APP_CC tc_sem_dec(tbus sem) { #if defined(_WIN32) - WaitForSingleObject((HANDLE)sem, INFINITE); - return 0; + WaitForSingleObject((HANDLE)sem, INFINITE); + return 0; #else - sem_wait((sem_t*)sem); - return 0; + sem_wait((sem_t *)sem); + return 0; #endif } @@ -200,10 +201,10 @@ int APP_CC tc_sem_inc(tbus sem) { #if defined(_WIN32) - ReleaseSemaphore((HANDLE)sem, 1, 0); - return 0; + ReleaseSemaphore((HANDLE)sem, 1, 0); + return 0; #else - sem_post((sem_t*)sem); - return 0; + sem_post((sem_t *)sem); + return 0; #endif } |