Stephen Magladry wrote: > I issued the > > export SANE_DEBUG_SANEI_THREAD=255 > only and here are the results. > > [blah:~] blah% scanimage >test.pnm > [sanei_debug] Setting debug level of sanei_thread to 255. > [sanei_debug] Setting debug level of sanei_thread to 255. > [sanei_debug] Setting debug level of sanei_thread to 255. > [sanei_debug] Setting debug level of sanei_thread to 255. > [sanei_debug] Setting debug level of sanei_thread to 255. > [sanei_debug] Setting debug level of sanei_thread to 255. > [sanei_thread] thread started, calling func() now... > [sanei_thread] pthread_create() created thread 25179136 > [sanei_thread] func() done - status = 0 >
The cancelling of the reader thread fails. Since pthread_cancel is broken on MacOS X there is a workaround implemented in sanei_thread. This workaround essentially replaces the sanei_cancel call with a SIGUSR2 signal. This means that backends SHOULD NEVER disable the SIGUSR2 signal on MacOS X if they want to be cancelled. For the Plustek backend the following code: sigfillset ( &ignore_set ); sigdelset ( &ignore_set, SIGTERM ); sigprocmask( SIG_SETMASK, &ignore_set, 0 ); should be changed to: sigfillset ( &ignore_set ); sigdelset ( &ignore_set, SIGTERM ); #if defined (__APPLE__) && defined (__MACH__) sigdelset ( &ignore_set, SIGUSR2 ); #endif sigprocmask( SIG_SETMASK, &ignore_set, 0 ); This probably affects other backends as well. Mattias -- ________________________________________________________________________ mattias.ell...@tsl.uu.se tel: +46 18 471 32 58 http://www.tsl.uu.se/~ellert/ fax: +46 18 471 35 13 ________________________________________________________________________