typedef struct s_xbt_thread_ {
xbt_os_thread_t os_thread;
- void_f_pvoid_t *code;
+ void_f_pvoid_t code;
void *userparam;
}s_xbt_thread_t;
}
-xbt_thread_t xbt_thread_create(const char*name,void_f_pvoid_t* code, void* param) {
+xbt_thread_t xbt_thread_create(const char*name,void_f_pvoid_t code, void* param) {
xbt_thread_t res = xbt_new0(s_xbt_thread_t,1);
res->userparam = param;
return res;
}
+const char* xbt_thread_name(xbt_thread_t t) {
+ return xbt_os_thread_name(t->os_thread);
+}
+
+const char* xbt_thread_self_name(void) {
+ return xbt_os_thread_self_name();
+}
+
void
xbt_thread_join(xbt_thread_t thread) {
DEBUG1("Join thread %p",thread);
xbt_mutex_t xbt_mutex_init(void) {
xbt_mutex_t res = (xbt_mutex_t)xbt_os_mutex_init();
DEBUG1("Create mutex %p", res);
- xbt_backtrace_display_current();
return res;
}
-void xbt_mutex_lock(xbt_mutex_t mutex) {
- DEBUG1("Lock mutex %p", mutex);
- xbt_os_mutex_lock( (xbt_os_mutex_t)mutex );
+void xbt_mutex_acquire(xbt_mutex_t mutex) {
+ DEBUG1("Acquire mutex %p", mutex);
+ xbt_os_mutex_acquire( (xbt_os_mutex_t)mutex );
}
-void xbt_mutex_unlock(xbt_mutex_t mutex) {
+void xbt_mutex_timedacquire(xbt_mutex_t mutex, double delay)
+{
+ DEBUG2("Acquire mutex %p with delay %lf", mutex,delay);
+ xbt_os_mutex_timedacquire( (xbt_os_mutex_t)mutex,delay );
+}
+
+void xbt_mutex_release(xbt_mutex_t mutex) {
DEBUG1("Unlock mutex %p", mutex);
- xbt_os_mutex_unlock( (xbt_os_mutex_t)mutex );
- xbt_backtrace_display_current();
+ xbt_os_mutex_release( (xbt_os_mutex_t)mutex );
}
void xbt_mutex_destroy(xbt_mutex_t mutex) {
xbt_cond_t xbt_cond_init(void) {
xbt_cond_t res = (xbt_cond_t) xbt_os_cond_init();
DEBUG1("Create cond %p", res);
- return (xbt_cond_t) xbt_os_cond_init();
+ return res;
}
void xbt_cond_wait(xbt_cond_t cond, xbt_mutex_t mutex) {
void xbt_cond_timedwait(xbt_cond_t cond, xbt_mutex_t mutex, double delay) {
DEBUG3("Wait cond %p, mutex %p for %f sec", cond, mutex,delay);
- xbt_backtrace_display_current();
xbt_os_cond_timedwait( (xbt_os_cond_t)cond, (xbt_os_mutex_t)mutex, delay );
DEBUG3("Done waiting cond %p, mutex %p for %f sec", cond, mutex, delay);
}