[fprint] vfs5011 support

Daniel Drake dan at reactivated.net
Tue Jan 13 18:11:11 PST 2015


Per-Ola Gustavsson wrote:
> Btw, the libfprint "SSM: sequential state machine" is quite flawed.
> Why isn't there a normal message loop system and threading? Maybe glib
> style? I haven't looked deeply into poll.c but I have a hunch it's
> functionality should be reimplemented in a very different way.

The idea was to use "zero threads" (i.e. to only use the thread of the 
process calling into the library). Why go to the expense of having a 
whole thread for tiny USB transactions? I was working with some very low 
power systems at the time.

Having implemented it like that though, I'm not sure it was worth it, as 
you note the code didn't turn out particularly small or readable. The 
SSM could probably be implemented to be cleaner/better, or indeed maybe 
moving to synchronous code running in threads would be sensible.

> vfs5011.c doesn't handle libusb async calls in a correct or polite
> manner. It hi'jacks the thread of libusb and fills it's stack with
> recursive calls and memory allocations. I believe this is causing race
> conditions and other anomalies,

libusb doesn't have a thread either, but that kind of code does indeed 
sound like it would be problematic.

Thanks
Daniel



More information about the fprint mailing list