From: Sophia Li <Sophia.Li@Sun.COM> - 2006-07-18 12:05:52
|
Del Merritt wrote: > > If adding the libusb_m_context argument is not seen as overly complex, I > would prefer to make it part of the 1.0 API instead of adding the > libusb_m_blah() functions. I.e., I would like to see the whole API > formally thread safe and reentrant. As for backward compatibility with > the 0.1.x version of libusb, since there appear to be no namespace > colisions - e.g., 0.1.x's usb_init() became libusb_init() in 1.0 - I > think that we can cover the old API in a manner similar to my "_m_" > proposal, wherein each of the init routines will detect an attempt by > the other flavor to get called and raise an exception or otherwise > gracefully fail; in most/all cases, such a failure would occur only for > a developer who was maintaining existing code, and s/he could quickly > vet and correct the problem. > > To reiterate and summarize: I would like to see the libusb 1.0 API > formally support reentrancy and thread-safety. I would rather see the > the native 1.0 API support only thread-safe calls, but I accept that > some degree of backward-compatibility might be of interest, hence the > complicated dual environment of "libusb_m_" and non-"libusb_m_" functions. > > Thoughts? The libusb_m_* doesn't seem necessary. Since libusb1.0 API has made big changes, no need to think much of backward compatibility. The whole libusb_* API should be made multi-thread safe. If not, it is a design defect and should be improved. |