I just want to show you why people here aren't able to offer you much useful advice. It might just be my failings.
I've gone through the last code snipped, and replaced everything that has no meaning to me with XXXXs, even after a few attempts to Google things (e.g.
pawsu2pawju - Google Search )
Code:
void* pawRUN_initCB( void *ud )
{
XXXXXX Run = ud;
XXXXXXX = Run;
Run->tid = XXXXXXXXXXXX();
if ( Run->initCB )
{
XXXXX *key = &(Run->env_key), *val = &(Run->env_val);
XXXXXXXXXXX( key, Run->tid, XXXXXXXXXX );
XXXXXXXXXXX( val, (XXXXX)Run, XXXXXXXXXXXX );
XXXXXXX( key->txt, key->len, XXXXXXXXXX, sizeof(XXXXXXXXXX) - 1 );
setenv( key->txt, val->txt, 1 );
XXXXXXXXXXXXX( Run->id, Run );
XXXXXXXXXXXXXXX( Run->id, XXXXXXXXXXXXX );
Run->initCB( Run->id, Run->ud );
unsetenv( key->txt );
}
return NULL;
}
static pthread_t pawrun_pthread( XXXXXX run )
{
XXXX txt = NULL;
XXXXX key = XXXXXXXX, val = BAD_XXXXXXXX;
XXXXX addr = 0;
XXXXXX Run = NULL;
XXXXXXXX( &key, run, XXXXXXXXXXX );
XXXXXXX( key.txt, key.len, XXXXXXXXXX, sizeof(XXXXXXXXXX)-1 );
txt = getenv( key.txt );
XXXXXXX( val.txt, txt, XXXXXXXX(txt) );
XXXXXXXXXXX( &addr, &val, XXXXXXXXXXXX );
Run = (void*)addr;
return Run->thread;
}
There really isn't much left that has any context for me, I'm sure others here feel the same way.
I'm not asking for an explanation of what "pawsu2pawju()" does, or even what a "pawsu" or "pawju" is, I just want to make you aware that what you ask relies heavily on stuff nobody here knows, so you won't get meaningful answers.