core/dynamo.c
/* For use by threads that start and stop whether dynamo controls them
 */
For use by threads that start and stop whether dynamo controls them
For use by threads that start and stop whether dynamo controls them
void
dynamo_thread_not_under_dynamo(dcontext_t *dcontext)
{
#ifdef LINUX
    if (dcontext == NULL)
        return;
    os_thread_not_under_dynamo(dcontext);
# ifdef SIDELINE
    if (dynamo_options.sideline) {
        sideline_stop();
    }
# endif
# ifdef DEBUG
    os_flush(dcontext->logfile);
# endif
#endif 
}
void dynamo_thread_not_under_dynamo ( dcontext_t * dcontext ) { #ifdef LINUX if ( dcontext == NULL ) return ; os_thread_not_under_dynamo ( dcontext ) ; # ifdef SIDELINE if ( dynamo_options . sideline ) { sideline_stop ( ) ; } # endif # ifdef DEBUG os_flush ( dcontext -> logfile ) ; # endif #endif }
For use by threads that start and stop whether dynamo controls them
For use by threads that start and stop whether dynamo controls them
/* FIXME : on windows this only matters when using the app_start app_stop 
     * interface, and it screws up the thread lookup and synch routines
     * undefining for windows for SAV alpha, revisit later with better model
     */ /* FIXME: mark !under_dynamo_control?
     * conflict with use in callback, also use at exit to decide what threads to kill
     * FIXME: when does thread_exit get called?  if thread says "dr_app_stop"
     * and we mark it no longer under our control when do we exit it?
     */ /* FIXME: if # active threads is 0, then put sideline thread to sleep! */ /* put sideline thread to sleep */ /* LINUX */