obsolete/thread.c
void __thread_unlock( JIMP_obj obj, JIMP_thread_s *own_thread ) {

	JIMP_thread_s *obj_th;
	obj_th = (JIMP_thread_s*) heap[obj].vm_t;
	
   /* If __remove_lock() return 1 - do not free mutex ! It's was doing early ! */	
	if( !__remove_lock( obj, own_thread ) ) 
		pthread_mutex_unlock( &obj_th->o_lock );
}
/* Unlock object and remove lock 
**  monitorexit opcode
*/
Unlock object and remove lock
monitorexit opcode
Unlock object and remove lock monitorexit opcode
void __thread_unlock( JIMP_obj obj, JIMP_thread_s *own_thread ) {
	JIMP_thread_s *obj_th;
	obj_th = (JIMP_thread_s*) heap[obj].vm_t;
	if( !__remove_lock( obj, own_thread ) ) 
		pthread_mutex_unlock( &obj_th->o_lock );
}
void __thread_unlock ( JIMP_obj obj , JIMP_thread_s * own_thread ) { JIMP_thread_s * obj_th ; obj_th = ( JIMP_thread_s * ) heap [ obj ] . vm_t ; if ( ! __remove_lock ( obj , own_thread ) ) pthread_mutex_unlock ( & obj_th -> o_lock ) ; }
Unlock object and remove lock
monitorexit opcode
Unlock object and remove lock monitorexit opcode
/* If __remove_lock() return 1 - do not free mutex ! It's was doing early ! */