Esempio n. 1
0
int SYMBOL_EXPORT pthread_mutex_init (pthread_mutex_t *__mutex, const pthread_mutexattr_t *__mutexattr)
{
	static int (*real_pthread_mutex_init)(pthread_mutex_t *__mutex, const pthread_mutexattr_t *__mutexattr);
	if (!real_pthread_mutex_init)
		real_pthread_mutex_init = dlsym(RTLD_NEXT, "pthread_mutex_init");

	if (__mutexattr) {
		pthread_mutexattr_t attr = *__mutexattr;
		pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
		return real_pthread_mutex_init(__mutex, &attr);
	}

	pthread_mutexattr_t attr;
	pthread_mutexattr_init(&attr);
	pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
	int ret = real_pthread_mutex_init(__mutex, &attr);
	pthread_mutexattr_destroy(&attr);
	return ret;
}
Esempio n. 2
0
int reeact_policy_pthread_mutex_init(void *mutex, void *attr)
{
#ifdef _REEACT_DEFAULT_POLICY_
	return real_pthread_mutex_init((pthread_mutex_t*)mutex,
				       (pthread_mutexattr_t*)attr);
#else
	// TODO: add user-policy here
	return 0;
#endif	
}