You've already forked metasploit-payloads
mirror of
https://github.com/rapid7/metasploit-payloads
synced 2025-08-16 10:50:20 +02:00
Land #93 - Fix threads in POSIX
This commit is contained in:
@ -23,15 +23,14 @@ int __futex_wake(volatile void *ftx, int count);
|
|||||||
*/
|
*/
|
||||||
LOCK * lock_create(VOID)
|
LOCK * lock_create(VOID)
|
||||||
{
|
{
|
||||||
LOCK * lock = (LOCK *)malloc( sizeof( LOCK ) );
|
LOCK * lock = calloc(1, sizeof(LOCK));
|
||||||
if (lock != NULL)
|
if (lock != NULL)
|
||||||
{
|
{
|
||||||
memset( lock, 0, sizeof( LOCK ) );
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
lock->handle = CreateMutex(NULL, FALSE, NULL);
|
lock->handle = CreateMutex(NULL, FALSE, NULL);
|
||||||
#else
|
#else
|
||||||
pthread_mutex_init(lock->handle, NULL);
|
pthread_mutex_init(&lock->handle, NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return lock;
|
return lock;
|
||||||
@ -49,7 +48,7 @@ VOID lock_destroy( LOCK * lock )
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
CloseHandle(lock->handle);
|
CloseHandle(lock->handle);
|
||||||
#else
|
#else
|
||||||
pthread_mutex_destroy(lock->handle);
|
pthread_mutex_destroy(&lock->handle);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
free(lock);
|
free(lock);
|
||||||
@ -65,7 +64,7 @@ VOID lock_acquire( LOCK * lock )
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
WaitForSingleObject(lock->handle, INFINITE);
|
WaitForSingleObject(lock->handle, INFINITE);
|
||||||
#else
|
#else
|
||||||
pthread_mutex_lock(lock->handle);
|
pthread_mutex_lock(&lock->handle);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -79,7 +78,7 @@ VOID lock_release( LOCK * lock )
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
ReleaseMutex(lock->handle);
|
ReleaseMutex(lock->handle);
|
||||||
#else
|
#else
|
||||||
pthread_mutex_unlock(lock->handle);
|
pthread_mutex_unlock(&lock->handle);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ typedef struct _LOCK
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
HANDLE handle;
|
HANDLE handle;
|
||||||
#else
|
#else
|
||||||
pthread_mutex_t *handle;
|
pthread_mutex_t handle;
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
} LOCK, * LPLOCK;
|
} LOCK, * LPLOCK;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user