}
#endif
}
+#ifdef D___Object______notify____
void CALL01(___Object______notify____, struct ___Object___ * ___this___) {
pthread_mutex_lock(&objlock);
pthread_cond_broadcast(&objcond);
pthread_mutex_unlock(&objlock);
}
-
+#endif
+#ifdef D___Object______notifyAll____
void CALL01(___Object______notifyAll____, struct ___Object___ * ___this___) {
pthread_mutex_lock(&objlock);
pthread_cond_broadcast(&objcond);
pthread_mutex_unlock(&objlock);
}
-
+#endif
+#ifdef D___Object______wait____
void CALL01(___Object______wait____, struct ___Object___ * ___this___) {
//release lock
+ pthread_t self=pthread_self();
int lockcount=VAR(___this___)->lockcount;
if (VAR(___this___)->___prevlockobject___==NULL) {
pthread_setspecific(threadlocks, VAR(___this___)->___nextlockobject___);
}
}
}
+#endif
int CALL01(___Object______MonitorExit____, struct ___Object___ * ___this___) {
#ifndef NOLOCK
#ifdef THREADS
int CALL01(___Object______MonitorEnter____, struct ___Object___ * ___this___);
int CALL01(___Object______MonitorExit____, struct ___Object___ * ___this___);
+#ifdef D___Object______notify____
+void CALL01(___Object______notify____, struct ___Object___ * ___this___);
+#endif
+#ifdef D___Object______notifyAll____
+void CALL01(___Object______notifyAll____, struct ___Object___ * ___this___);
+#endif
+#ifdef D___Object______wait____
+void CALL01(___Object______wait____, struct ___Object___ * ___this___);
+#endif
#endif
#endif