source/train/XWorker.cpp
void XWorker::AddJobEnqueueFinished(XQueue* jobQueue)
{
    XList args;
    args.Add(this);

    XQueue& queueRun = jobQueue != NULL ? *jobQueue : queue;

    if (isInstantRun)
        XWorker::EnqueueFinished(&args);
    else
        queueRun.EnqueueJob((void*)(char*)XWorker::EnqueueFinished, &args);
}
/* 
add a job of enqueuing a counting a finished job
>> jobQueue - the queue where we push the job
*/
add a job of enqueuing a counting a finished job
>> jobQueue - the queue where we push the job
add a job of enqueuing a counting a finished job >> jobQueue - the queue where we push the job
void XWorker::AddJobEnqueueFinished(XQueue* jobQueue)
{
    XList args;
    args.Add(this);
    XQueue& queueRun = jobQueue != NULL ? *jobQueue : queue;
    if (isInstantRun)
        XWorker::EnqueueFinished(&args);
    else
        queueRun.EnqueueJob((void*)(char*)XWorker::EnqueueFinished, &args);
}
void XWorker :: AddJobEnqueueFinished ( XQueue * jobQueue ) { XList args ; args . Add ( this ) ; XQueue & queueRun = jobQueue != NULL ? * jobQueue : queue ; if ( isInstantRun ) XWorker :: EnqueueFinished ( & args ) ; else queueRun . EnqueueJob ( ( void * ) ( char * ) XWorker :: EnqueueFinished , & args ) ; }
add a job of enqueuing a counting a finished job
>> jobQueue - the queue where we push the job
add a job of enqueuing a counting a finished job >> jobQueue - the queue where we push the job