[sane-devel] Concerns with pthread in SANE
glen.petrie at eitc.epson.com
Mon Oct 8 21:55:40 UTC 2012
As you may know (not know), I am try put the SANE dll into the LSB (the
Linux Standard Base). In doing so, I need to include the testing tools
and, as such, I trying to get all of SANE to compile and execute
correctly using the LSB's compiler (lsbcc). With the changes (only a
few) I have made, I can compile and link SANE under the LSB with the
exception of using pthreads. There are a couple of warnings to note:
1. The variable type pthread_t (for linux) is defined as "int" and
test are done against negative values (specifically, -1) of this type.
a. While, in general, pthread_t is supposed to be opaque entity
(object); it is typically defined as "unsigned long int" which produce
many warning of unsigned and signed comparison.
i. From the web the recommendations for
1. defining an invalid pthread (versus using "-1") is to use "
pthread_t invalid_thread = pthread_self();
2. setting incorrect pthread_t to "invalid_thread" versus "-1"
3. and comparison should be done using "if (pthread_equal(pid,
invalid_thread))" versus "if (pid == -1)"
2. I also found some if statements that use "B_OK" but I could not
find where "B_OK" is defined (either in SANE stuff or /usr/...)
Based on the above there are too many changes involved in pthread code
and I don't want to introduce errors into SANE; so, I will disable
pthread for the LSB work (useless someone else updates the pthread code
as recommend by the suggestions on the web).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the sane-devel