system/lzf: replace the semaphore to pthread to ensuring compatibility
Private SEM_INITIALIZER is incompatible with other OS Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
parent
ea9db635d6
commit
0f632f1d66
@ -41,7 +41,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <semaphore.h>
|
#include <pthread.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if CONFIG_SYSTEM_LZF != CONFIG_m
|
#if CONFIG_SYSTEM_LZF != CONFIG_m
|
||||||
static sem_t g_exclsem = SEM_INITIALIZER(1);
|
static pthread_mutex_t g_exclmutex = PTHREAD_MUTEX_INITIALIZER;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static off_t g_nread;
|
static off_t g_nread;
|
||||||
@ -78,11 +78,11 @@ static uint8_t g_buf2[MAX_BLOCKSIZE + LZF_MAX_HDR_SIZE + 16];
|
|||||||
* Private Functions
|
* Private Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if CONFIG_SYSTEM_LZF != 2
|
#if CONFIG_SYSTEM_LZF != CONFIG_m
|
||||||
static void lzf_exit(int exitcode) noreturn_function;
|
static void lzf_exit(int exitcode) noreturn_function;
|
||||||
static void lzf_exit(int exitcode)
|
static void lzf_exit(int exitcode)
|
||||||
{
|
{
|
||||||
sem_post(&g_exclsem);
|
pthread_mutex_unlock(&g_exclmutex);
|
||||||
exit(exitcode);
|
exit(exitcode);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@ -454,12 +454,7 @@ int main(int argc, FAR char *argv[])
|
|||||||
* global variables.
|
* global variables.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ret = sem_wait(&g_exclsem);
|
pthread_mutex_lock(&g_exclmutex);
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "sem_wait failed: %d\n", errno);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set defaults. */
|
/* Set defaults. */
|
||||||
|
Loading…
Reference in New Issue
Block a user