304 |
{ |
{ |
305 |
struct timeval now; |
struct timeval now; |
306 |
struct timespec timeout; |
struct timespec timeout; |
307 |
|
|
308 |
|
#if !defined(PTW32_STATIC_LIB) |
309 |
sigset_t mask; |
sigset_t mask; |
310 |
|
|
311 |
/* Block all signals so that we don't try to execute a Caml signal handler */ |
/* Block all signals so that we don't try to execute a Caml signal handler */ |
313 |
pthread_sigmask(SIG_BLOCK, &mask, NULL); |
pthread_sigmask(SIG_BLOCK, &mask, NULL); |
314 |
|
|
315 |
nice(19); |
nice(19); |
316 |
|
#endif |
317 |
|
|
318 |
pthread_mutex_lock(&mutex); |
pthread_mutex_lock(&mutex); |
319 |
|
|
355 |
|
|
356 |
value ml_job_start(value job_v, value fd_v) |
value ml_job_start(value job_v, value fd_v) |
357 |
{ |
{ |
358 |
job_fd = Int_val(fd_v); |
// job_fd = Int_val(fd_v); |
359 |
|
job_fd = Fd_val(fd_v); |
360 |
job_begin_pos = Int64_val(Field(job_v, JOB_BEGIN_POS)); |
job_begin_pos = Int64_val(Field(job_v, JOB_BEGIN_POS)); |
361 |
job_len = Int64_val(Field(job_v, JOB_LEN)); |
job_len = Int64_val(Field(job_v, JOB_LEN)); |
362 |
job_method = Field(job_v, JOB_METHOD); |
job_method = Field(job_v, JOB_METHOD); |