diff --git a/project/headers.mk b/project/headers.mk index d137b03..585234b 100644 --- a/project/headers.mk +++ b/project/headers.mk @@ -3,5 +3,6 @@ API_HEADERS = \ $(PROJECT_DIR)/include/$(PACKAGE)/sltdl_api.h \ INTERNAL_HEADERS = \ + $(SOURCE_DIR)/src/internal/sltdl_core.h \ ALL_HEADERS = $(API_HEADERS) $(INTERNAL_HEADERS) diff --git a/src/core/lt_core.c b/src/core/lt_core.c index b0c3952..df9f58f 100644 --- a/src/core/lt_core.c +++ b/src/core/lt_core.c @@ -38,3 +38,18 @@ int lt_dlexit(void) return 0; } + +void lt_slock(void) +{ + int locked; + + do { + locked = pthread_mutex_lock(<_lock); + } while (locked); +} + +int lt_sunlock(int ret) +{ + pthread_mutex_unlock(<_lock); + return ret; +} diff --git a/src/internal/sltdl_core.h b/src/internal/sltdl_core.h new file mode 100644 index 0000000..f74542e --- /dev/null +++ b/src/internal/sltdl_core.h @@ -0,0 +1,7 @@ +#ifndef SLTDL_CORE_H +#define SLTDL_CORE_H + +void lt_slock(void); +int lt_sunlock(int); + +#endif