No response to my message of last week, so let me try again. It's pretty
simple: librdf_cache_set_common locks the world mutex, calls
librdf_cache_cleanup, which calls librdf_cache_delete, which locks the world
mutex. pthreads mutexes are non-recursive by default, thus deadlock. So I can
fix this by setting PTHREAD_MUTEX_RECURSIVE at init time, but how was this
supposed to work?
Further, there's this from librdf_free_cache:
LIBRDF_FREE(librdf_cache, cache);
#ifdef WITH_THREADS
pthread_mutex_unlock(cache->world->mutex);
#endif
So I'm just not feeling confident about Redland's thread support in general.
Can anyone allay my concerns?
_______________________________________________
redland-dev mailing list
[email protected]
http://lists.librdf.org/mailman/listinfo/redland-dev