kopia lustrzana https://gitlab.com/sane-project/backends
Fix SANE_Pid related -Wsign-compare warnings
This may fix threading related issues on WIN32 platforms, BTW.merge-requests/1/head
rodzic
ed59056d40
commit
fe12d31e68
|
@ -947,7 +947,7 @@ do_cancel (AgfaFocus_Scanner * s)
|
||||||
|
|
||||||
do_eof (s);
|
do_eof (s);
|
||||||
|
|
||||||
if (s->reader_pid != -1)
|
if (!sanei_thread_is_invalid (s->reader_pid))
|
||||||
{
|
{
|
||||||
int exit_status;
|
int exit_status;
|
||||||
|
|
||||||
|
@ -2054,7 +2054,7 @@ sane_cancel (SANE_Handle handle)
|
||||||
{
|
{
|
||||||
AgfaFocus_Scanner *s = handle;
|
AgfaFocus_Scanner *s = handle;
|
||||||
|
|
||||||
if (s->reader_pid != -1)
|
if (!sanei_thread_is_invalid (s->reader_pid))
|
||||||
sanei_thread_kill (s->reader_pid);
|
sanei_thread_kill (s->reader_pid);
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3483,7 +3483,7 @@ do_cancel (Artec48U_Scanner * s, SANE_Bool closepipe)
|
||||||
|
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
|
|
||||||
if (s->reader_pid != -1)
|
if (!sanei_thread_is_invalid (s->reader_pid))
|
||||||
{
|
{
|
||||||
/*parent */
|
/*parent */
|
||||||
XDBG ((1, "killing reader_process\n"));
|
XDBG ((1, "killing reader_process\n"));
|
||||||
|
@ -4301,7 +4301,7 @@ sane_start (SANE_Handle handle)
|
||||||
s->reader_pipe = fds[1];
|
s->reader_pipe = fds[1];
|
||||||
s->reader_pid = sanei_thread_begin (reader_process, s);
|
s->reader_pid = sanei_thread_begin (reader_process, s);
|
||||||
cancelRead = SANE_FALSE;
|
cancelRead = SANE_FALSE;
|
||||||
if (s->reader_pid == -1)
|
if (sanei_thread_is_invalid (s->reader_pid))
|
||||||
{
|
{
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
XDBG ((2, "sane_start: sanei_thread_begin failed (%s)\n", strerror (errno)));
|
XDBG ((2, "sane_start: sanei_thread_begin failed (%s)\n", strerror (errno)));
|
||||||
|
|
|
@ -6216,7 +6216,7 @@ do_cancel (Avision_Scanner* s)
|
||||||
s->duplex_rear_valid = SANE_FALSE;
|
s->duplex_rear_valid = SANE_FALSE;
|
||||||
s->page = 0;
|
s->page = 0;
|
||||||
|
|
||||||
if (s->reader_pid != -1) {
|
if (!sanei_thread_is_invalid (s->reader_pid)) {
|
||||||
int exit_status;
|
int exit_status;
|
||||||
|
|
||||||
/* ensure child knows it's time to stop: */
|
/* ensure child knows it's time to stop: */
|
||||||
|
|
|
@ -2029,7 +2029,7 @@ do_cancel (Coolscan_t * scanner)
|
||||||
|
|
||||||
do_eof (scanner); /* close pipe and reposition scanner */
|
do_eof (scanner); /* close pipe and reposition scanner */
|
||||||
|
|
||||||
if (scanner->reader_pid != -1)
|
if (!sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
int exit_status;
|
int exit_status;
|
||||||
|
|
||||||
|
@ -4093,7 +4093,7 @@ sane_start (SANE_Handle handle)
|
||||||
scanner->pipe = fds[0];
|
scanner->pipe = fds[0];
|
||||||
scanner->reader_fds = fds[1];
|
scanner->reader_fds = fds[1];
|
||||||
scanner->reader_pid = sanei_thread_begin( reader_process, (void*)scanner );
|
scanner->reader_pid = sanei_thread_begin( reader_process, (void*)scanner );
|
||||||
if (scanner->reader_pid == -1)
|
if (sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
|
@ -4153,7 +4153,7 @@ sane_cancel (SANE_Handle handle)
|
||||||
{
|
{
|
||||||
Coolscan_t *s = handle;
|
Coolscan_t *s = handle;
|
||||||
|
|
||||||
if (s->reader_pid != -1)
|
if (!sanei_thread_is_invalid (s->reader_pid))
|
||||||
{
|
{
|
||||||
sanei_thread_kill ( s->reader_pid );
|
sanei_thread_kill ( s->reader_pid );
|
||||||
sanei_thread_waitpid( s->reader_pid, NULL );
|
sanei_thread_waitpid( s->reader_pid, NULL );
|
||||||
|
|
|
@ -192,7 +192,7 @@ hp_handle_startReader (HpHandle this, HpScsi scsi)
|
||||||
this->pipe_write_fd = -1;
|
this->pipe_write_fd = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->reader_pid == -1) /* Creating child failed ? Clean up pipe */
|
if (sanei_thread_is_invalid (this->reader_pid))
|
||||||
{
|
{
|
||||||
if ( !this->child_forked )
|
if ( !this->child_forked )
|
||||||
{
|
{
|
||||||
|
|
|
@ -703,7 +703,7 @@ sane_start (SANE_Handle handle)
|
||||||
scanner->reader_pid = sanei_thread_begin (reader_process, scanner);
|
scanner->reader_pid = sanei_thread_begin (reader_process, scanner);
|
||||||
time (&scanner->last_scan);
|
time (&scanner->last_scan);
|
||||||
|
|
||||||
if (scanner->reader_pid == -1)
|
if (sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
DBG (MSG_ERR, "cannot fork reader process.\n");
|
DBG (MSG_ERR, "cannot fork reader process.\n");
|
||||||
DBG (MSG_ERR, "%s", strerror (errno));
|
DBG (MSG_ERR, "%s", strerror (errno));
|
||||||
|
@ -1098,7 +1098,7 @@ do_reset (struct hp3500_data *scanner)
|
||||||
static void
|
static void
|
||||||
do_cancel (struct hp3500_data *scanner)
|
do_cancel (struct hp3500_data *scanner)
|
||||||
{
|
{
|
||||||
if (scanner->reader_pid != -1)
|
if (!sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (sanei_thread_kill (scanner->reader_pid) == 0)
|
if (sanei_thread_kill (scanner->reader_pid) == 0)
|
||||||
|
|
|
@ -909,7 +909,7 @@ cancel_scan(Microtek2_Scanner *ms)
|
||||||
of material on a feeder, then pid may be already -1 and
|
of material on a feeder, then pid may be already -1 and
|
||||||
kill(-1, SIGTERM), i.e. killing all our processes, is not
|
kill(-1, SIGTERM), i.e. killing all our processes, is not
|
||||||
likely what we really want - --mj, 2001/Nov/19 */
|
likely what we really want - --mj, 2001/Nov/19 */
|
||||||
if (ms->pid != -1)
|
if (!sanei_thread_is_invalid (ms->pid))
|
||||||
{
|
{
|
||||||
sanei_thread_kill(ms->pid);
|
sanei_thread_kill(ms->pid);
|
||||||
sanei_thread_waitpid(ms->pid, NULL);
|
sanei_thread_waitpid(ms->pid, NULL);
|
||||||
|
@ -5503,7 +5503,7 @@ sane_start(SANE_Handle handle)
|
||||||
/* create reader routine as new thread or process */
|
/* create reader routine as new thread or process */
|
||||||
ms->pid = sanei_thread_begin( reader_process,(void*) ms);
|
ms->pid = sanei_thread_begin( reader_process,(void*) ms);
|
||||||
|
|
||||||
if ( ms->pid == -1 )
|
if ( sanei_thread_is_invalid (ms->pid) )
|
||||||
{
|
{
|
||||||
DBG(1, "sane_start: fork failed\n");
|
DBG(1, "sane_start: fork failed\n");
|
||||||
status = SANE_STATUS_IO_ERROR;
|
status = SANE_STATUS_IO_ERROR;
|
||||||
|
|
|
@ -2952,7 +2952,7 @@ do_stop (Mustek_Scanner * s)
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
s->pass = 0;
|
s->pass = 0;
|
||||||
|
|
||||||
if (s->reader_pid != -1)
|
if (!sanei_thread_is_invalid (s->reader_pid))
|
||||||
{
|
{
|
||||||
SANE_Int exit_status;
|
SANE_Int exit_status;
|
||||||
struct timeval now;
|
struct timeval now;
|
||||||
|
@ -2983,7 +2983,7 @@ do_stop (Mustek_Scanner * s)
|
||||||
sanei_thread_kill (s->reader_pid);
|
sanei_thread_kill (s->reader_pid);
|
||||||
|
|
||||||
pid = sanei_thread_waitpid (s->reader_pid, &exit_status);
|
pid = sanei_thread_waitpid (s->reader_pid, &exit_status);
|
||||||
if (pid == -1)
|
if (sanei_thread_is_invalid (pid))
|
||||||
{
|
{
|
||||||
DBG (1,
|
DBG (1,
|
||||||
"do_stop: sanei_thread_waitpid failed, already terminated? (%s)\n",
|
"do_stop: sanei_thread_waitpid failed, already terminated? (%s)\n",
|
||||||
|
@ -6565,7 +6565,7 @@ sane_start (SANE_Handle handle)
|
||||||
/* create reader routine as new process or thread */
|
/* create reader routine as new process or thread */
|
||||||
s->reader_pid = sanei_thread_begin (reader_process, (void *) s);
|
s->reader_pid = sanei_thread_begin (reader_process, (void *) s);
|
||||||
|
|
||||||
if (s->reader_pid == -1)
|
if (sanei_thread_is_invalid (s->reader_pid))
|
||||||
{
|
{
|
||||||
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
|
|
|
@ -2896,7 +2896,7 @@ do_cancel (Pie_Scanner * scanner)
|
||||||
|
|
||||||
scanner->scanning = SANE_FALSE;
|
scanner->scanning = SANE_FALSE;
|
||||||
|
|
||||||
if (scanner->reader_pid != -1)
|
if (!sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
DBG (DBG_sane_info, "killing reader_process\n");
|
DBG (DBG_sane_info, "killing reader_process\n");
|
||||||
sanei_thread_kill (scanner->reader_pid);
|
sanei_thread_kill (scanner->reader_pid);
|
||||||
|
@ -3703,7 +3703,7 @@ sane_start (SANE_Handle handle)
|
||||||
scanner->reader_fds = fds[1];
|
scanner->reader_fds = fds[1];
|
||||||
scanner->reader_pid = sanei_thread_begin( reader_process, (void*)scanner );
|
scanner->reader_pid = sanei_thread_begin( reader_process, (void*)scanner );
|
||||||
|
|
||||||
if (scanner->reader_pid == -1)
|
if (sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
|
|
|
@ -1083,7 +1083,7 @@ terminate_reader_task (pixma_sane_t * ss, int *exit_code)
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
|
||||||
pid = ss->reader_taskid;
|
pid = ss->reader_taskid;
|
||||||
if (pid == -1)
|
if (sanei_thread_is_invalid (pid))
|
||||||
return -1;
|
return -1;
|
||||||
if (sanei_thread_is_forked ())
|
if (sanei_thread_is_forked ())
|
||||||
{
|
{
|
||||||
|
@ -1129,7 +1129,7 @@ start_reader_task (pixma_sane_t * ss)
|
||||||
ss->rpipe = -1;
|
ss->rpipe = -1;
|
||||||
ss->wpipe = -1;
|
ss->wpipe = -1;
|
||||||
}
|
}
|
||||||
if (ss->reader_taskid != -1)
|
if (!sanei_thread_is_invalid (ss->reader_taskid))
|
||||||
{
|
{
|
||||||
PDBG (pixma_dbg
|
PDBG (pixma_dbg
|
||||||
(1, "BUG:reader_taskid(%ld) != -1\n", (long) ss->reader_taskid));
|
(1, "BUG:reader_taskid(%ld) != -1\n", (long) ss->reader_taskid));
|
||||||
|
@ -1159,7 +1159,7 @@ start_reader_task (pixma_sane_t * ss)
|
||||||
{
|
{
|
||||||
pid = sanei_thread_begin (reader_thread, ss);
|
pid = sanei_thread_begin (reader_thread, ss);
|
||||||
}
|
}
|
||||||
if (pid == -1)
|
if (sanei_thread_is_invalid (pid))
|
||||||
{
|
{
|
||||||
close (ss->wpipe);
|
close (ss->wpipe);
|
||||||
close (ss->rpipe);
|
close (ss->rpipe);
|
||||||
|
@ -1227,7 +1227,7 @@ read_image (pixma_sane_t * ss, void *buf, unsigned size, int *readlen)
|
||||||
ss->image_bytes_read, ss->sp.image_size));
|
ss->image_bytes_read, ss->sp.image_size));
|
||||||
close (ss->rpipe);
|
close (ss->rpipe);
|
||||||
ss->rpipe = -1;
|
ss->rpipe = -1;
|
||||||
if (terminate_reader_task (ss, &status) != -1
|
if (!sanei_thread_is_invalid (terminate_reader_task (ss, &status))
|
||||||
&& status != SANE_STATUS_GOOD)
|
&& status != SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
return status;
|
return status;
|
||||||
|
|
|
@ -572,7 +572,7 @@ do_cancel( Plustek_Scanner *scanner, SANE_Bool closepipe )
|
||||||
DBG( _DBG_PROC,"do_cancel\n" );
|
DBG( _DBG_PROC,"do_cancel\n" );
|
||||||
scanner->scanning = SANE_FALSE;
|
scanner->scanning = SANE_FALSE;
|
||||||
|
|
||||||
if( scanner->reader_pid != -1 ) {
|
if( !sanei_thread_is_invalid (scanner->reader_pid) ) {
|
||||||
|
|
||||||
DBG( _DBG_PROC, ">>>>>>>> killing reader_process <<<<<<<<\n" );
|
DBG( _DBG_PROC, ">>>>>>>> killing reader_process <<<<<<<<\n" );
|
||||||
|
|
||||||
|
@ -2629,7 +2629,7 @@ sane_start( SANE_Handle handle )
|
||||||
|
|
||||||
cancelRead = SANE_FALSE;
|
cancelRead = SANE_FALSE;
|
||||||
|
|
||||||
if( s->reader_pid == -1 ) {
|
if( sanei_thread_is_invalid (s->reader_pid) ) {
|
||||||
DBG( _DBG_ERROR, "ERROR: could not start reader task\n" );
|
DBG( _DBG_ERROR, "ERROR: could not start reader task\n" );
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
usbDev_close( dev );
|
usbDev_close( dev );
|
||||||
|
|
|
@ -1301,7 +1301,7 @@ static SANE_Status start_reader (SnapScan_Scanner *pss)
|
||||||
|
|
||||||
cancelRead = SANE_FALSE;
|
cancelRead = SANE_FALSE;
|
||||||
|
|
||||||
if (pss->child == -1)
|
if (sanei_thread_is_invalid (pss->child))
|
||||||
{
|
{
|
||||||
/* we'll have to read in blocking mode */
|
/* we'll have to read in blocking mode */
|
||||||
DBG (DL_MAJOR_ERROR,
|
DBG (DL_MAJOR_ERROR,
|
||||||
|
@ -1815,7 +1815,7 @@ SANE_Status sane_read (SANE_Handle h,
|
||||||
|
|
||||||
if (pss->psrc == NULL || pss->psrc->remaining(pss->psrc) == 0)
|
if (pss->psrc == NULL || pss->psrc->remaining(pss->psrc) == 0)
|
||||||
{
|
{
|
||||||
if (pss->child != -1)
|
if (!sanei_thread_is_invalid (pss->child))
|
||||||
{
|
{
|
||||||
sanei_thread_waitpid (pss->child, 0); /* ensure no zombies */
|
sanei_thread_waitpid (pss->child, 0); /* ensure no zombies */
|
||||||
pss->child = -1;
|
pss->child = -1;
|
||||||
|
@ -1875,7 +1875,7 @@ void sane_cancel (SANE_Handle h)
|
||||||
/* signal a cancellation has occurred */
|
/* signal a cancellation has occurred */
|
||||||
pss->state = ST_CANCEL_INIT;
|
pss->state = ST_CANCEL_INIT;
|
||||||
/* signal the reader, if any */
|
/* signal the reader, if any */
|
||||||
if (pss->child != -1)
|
if (!sanei_thread_is_invalid (pss->child))
|
||||||
{
|
{
|
||||||
DBG( DL_INFO, ">>>>>>>> killing reader_process <<<<<<<<\n" );
|
DBG( DL_INFO, ">>>>>>>> killing reader_process <<<<<<<<\n" );
|
||||||
|
|
||||||
|
@ -1941,7 +1941,7 @@ SANE_Status sane_set_io_mode (SANE_Handle h, SANE_Bool m)
|
||||||
|
|
||||||
if (m)
|
if (m)
|
||||||
{
|
{
|
||||||
if (pss->child == -1)
|
if (sanei_thread_is_invalid (pss->child))
|
||||||
{
|
{
|
||||||
DBG (DL_MINOR_INFO,
|
DBG (DL_MINOR_INFO,
|
||||||
"%s: no reader child; must use blocking mode.\n",
|
"%s: no reader child; must use blocking mode.\n",
|
||||||
|
@ -1971,7 +1971,7 @@ SANE_Status sane_get_select_fd (SANE_Handle h, SANE_Int * fd)
|
||||||
if (pss->state != ST_SCAN_INIT)
|
if (pss->state != ST_SCAN_INIT)
|
||||||
return SANE_STATUS_INVAL;
|
return SANE_STATUS_INVAL;
|
||||||
|
|
||||||
if (pss->child == -1)
|
if (sanei_thread_is_invalid (pss->child))
|
||||||
{
|
{
|
||||||
DBG (DL_MINOR_INFO,
|
DBG (DL_MINOR_INFO,
|
||||||
"%s: no reader child; cannot provide select file descriptor.\n",
|
"%s: no reader child; cannot provide select file descriptor.\n",
|
||||||
|
|
|
@ -1762,7 +1762,7 @@ do_cancel (struct sp15c *scanner)
|
||||||
|
|
||||||
do_eof (scanner); /* close pipe and reposition scanner */
|
do_eof (scanner); /* close pipe and reposition scanner */
|
||||||
|
|
||||||
if (scanner->reader_pid != -1)
|
if (!sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
int exit_status;
|
int exit_status;
|
||||||
DBG (10, "do_cancel: kill reader_process\n");
|
DBG (10, "do_cancel: kill reader_process\n");
|
||||||
|
|
|
@ -470,7 +470,7 @@ do_cancel (Tamarack_Scanner *s)
|
||||||
|
|
||||||
do_eof (s);
|
do_eof (s);
|
||||||
|
|
||||||
if (s->reader_pid != -1)
|
if (!sanei_thread_is_invalid (s->reader_pid))
|
||||||
{
|
{
|
||||||
int exit_status;
|
int exit_status;
|
||||||
|
|
||||||
|
@ -1442,7 +1442,7 @@ sane_cancel (SANE_Handle handle)
|
||||||
{
|
{
|
||||||
Tamarack_Scanner *s = handle;
|
Tamarack_Scanner *s = handle;
|
||||||
|
|
||||||
if (s->reader_pid != -1)
|
if (!sanei_thread_is_invalid (s->reader_pid))
|
||||||
sanei_thread_kill (s->reader_pid);
|
sanei_thread_kill (s->reader_pid);
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1355,7 +1355,7 @@ finish_pass (Test_Device * test_device)
|
||||||
DBG (2, "finish_pass: pipe closed\n");
|
DBG (2, "finish_pass: pipe closed\n");
|
||||||
test_device->pipe = -1;
|
test_device->pipe = -1;
|
||||||
}
|
}
|
||||||
if (test_device->reader_pid != -1)
|
if (!sanei_thread_is_invalid (test_device->reader_pid))
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
SANE_Pid pid;
|
SANE_Pid pid;
|
||||||
|
@ -1364,7 +1364,7 @@ finish_pass (Test_Device * test_device)
|
||||||
(long) test_device->reader_pid);
|
(long) test_device->reader_pid);
|
||||||
sanei_thread_kill (test_device->reader_pid);
|
sanei_thread_kill (test_device->reader_pid);
|
||||||
pid = sanei_thread_waitpid (test_device->reader_pid, &status);
|
pid = sanei_thread_waitpid (test_device->reader_pid, &status);
|
||||||
if (pid == -1)
|
if (sanei_thread_is_invalid (pid))
|
||||||
{
|
{
|
||||||
DBG (1,
|
DBG (1,
|
||||||
"finish_pass: sanei_thread_waitpid failed, already terminated? (%s)\n",
|
"finish_pass: sanei_thread_waitpid failed, already terminated? (%s)\n",
|
||||||
|
@ -2568,7 +2568,7 @@ sane_start (SANE_Handle handle)
|
||||||
test_device->reader_pid =
|
test_device->reader_pid =
|
||||||
sanei_thread_begin (reader_task, (void *) test_device);
|
sanei_thread_begin (reader_task, (void *) test_device);
|
||||||
|
|
||||||
if (test_device->reader_pid == -1)
|
if (sanei_thread_is_invalid (test_device->reader_pid))
|
||||||
{
|
{
|
||||||
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
DBG (1, "sane_start: sanei_thread_begin failed (%s)\n",
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
|
|
|
@ -391,7 +391,7 @@ static SANE_Status do_cancel( U12_Scanner *scanner, SANE_Bool closepipe )
|
||||||
|
|
||||||
scanner->scanning = SANE_FALSE;
|
scanner->scanning = SANE_FALSE;
|
||||||
|
|
||||||
if( scanner->reader_pid != -1 ) {
|
if( !sanei_thread_is_invalid (scanner->reader_pid) ) {
|
||||||
|
|
||||||
DBG( _DBG_PROC, ">>>>>>>> killing reader_process <<<<<<<<\n" );
|
DBG( _DBG_PROC, ">>>>>>>> killing reader_process <<<<<<<<\n" );
|
||||||
|
|
||||||
|
@ -1731,7 +1731,7 @@ SANE_Status sane_start( SANE_Handle handle )
|
||||||
|
|
||||||
cancelRead = SANE_FALSE;
|
cancelRead = SANE_FALSE;
|
||||||
|
|
||||||
if( s->reader_pid == -1 ) {
|
if( sanei_thread_is_invalid (s->reader_pid) ) {
|
||||||
DBG( _DBG_ERROR, "ERROR: could not start reader task\n" );
|
DBG( _DBG_ERROR, "ERROR: could not start reader task\n" );
|
||||||
s->scanning = SANE_FALSE;
|
s->scanning = SANE_FALSE;
|
||||||
u12if_close( dev );
|
u12if_close( dev );
|
||||||
|
|
|
@ -4670,14 +4670,14 @@ static SANE_Status do_cancel(Umax_Scanner *scanner)
|
||||||
|
|
||||||
scanner->scanning = SANE_FALSE;
|
scanner->scanning = SANE_FALSE;
|
||||||
|
|
||||||
if (scanner->reader_pid != -1)
|
if (!sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
DBG(DBG_sane_info,"killing reader_process\n");
|
DBG(DBG_sane_info,"killing reader_process\n");
|
||||||
|
|
||||||
sanei_thread_kill(scanner->reader_pid);
|
sanei_thread_kill(scanner->reader_pid);
|
||||||
pid = sanei_thread_waitpid(scanner->reader_pid, &status);
|
pid = sanei_thread_waitpid(scanner->reader_pid, &status);
|
||||||
|
|
||||||
if (pid == -1)
|
if (sanei_thread_is_invalid (pid))
|
||||||
{
|
{
|
||||||
DBG(DBG_sane_info, "do_cancel: sanei_thread_waitpid failed, already terminated ? (%s)\n", strerror(errno));
|
DBG(DBG_sane_info, "do_cancel: sanei_thread_waitpid failed, already terminated ? (%s)\n", strerror(errno));
|
||||||
}
|
}
|
||||||
|
@ -7996,7 +7996,7 @@ SANE_Status sane_start(SANE_Handle handle)
|
||||||
/* start reader_process, deponds on OS if fork() or threads are used */
|
/* start reader_process, deponds on OS if fork() or threads are used */
|
||||||
scanner->reader_pid = sanei_thread_begin(reader_process, (void *) scanner);
|
scanner->reader_pid = sanei_thread_begin(reader_process, (void *) scanner);
|
||||||
|
|
||||||
if (scanner->reader_pid == -1)
|
if (sanei_thread_is_invalid (scanner->reader_pid))
|
||||||
{
|
{
|
||||||
DBG(DBG_error, "ERROR: sanei_thread_begin failed (%s)\n", strerror(errno));
|
DBG(DBG_error, "ERROR: sanei_thread_begin failed (%s)\n", strerror(errno));
|
||||||
scanner->scanning = SANE_FALSE;
|
scanner->scanning = SANE_FALSE;
|
||||||
|
|
|
@ -147,7 +147,7 @@ sanei_thread_is_invalid( SANE_Pid pid )
|
||||||
#endif
|
#endif
|
||||||
rc = SANE_TRUE;
|
rc = SANE_TRUE;
|
||||||
#else
|
#else
|
||||||
if (pid == -1)
|
if (pid == (SANE_Pid) -1)
|
||||||
rc = SANE_TRUE;
|
rc = SANE_TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue