mutex_init/destroy added but not tested