- Avoid sending twice the same status.
- Discard SCARD_E_UNKNOWN_READER error as it's happening when the reader is
disconnected and the disconnection will be detected by the pcsclite.cpp
status thread.
- Allow up to 4 the number of times SCardCancel is called before waiting for
the status `thread` to finish.
- Destroy the mutexes and conds only in the destructors.
- Check that the thread handles are still valid before calling join on them.
- A reader disconnection can't be detected by SCardGetStatusChange in the reader
(cardreader.cpp) but by detecting that the reader doesn't appear in the list of
readers retrieved in pcsclite.cpp.
- The list of readers is now stored in an object where the keys are the names of
the readers. When a reader disconnection is detected, the reader is closed
triggering the 'end' event. Then the reader is removed from the readers list.
- Make sure while handling AsyncResult in HandleReaderStatusChange
(JS thread), the AsyncResult is not overwritten in HandlerFunction
(SCardGetStatusChange thread).
- So it can be compatible in every platform supported by libuv.
- Use attached threads instead of detached.
- Remove all CardReader 'status' listeners before emitting the
'end' event.
- We can optionally pass the share_mode and preferred_protocol options. They are
optional to keep backwards compatibility.
- Update README
- Define constants in C++ land.
- Of the inserted card.
- Refactoring of the code that creates a Buffer instance into a
separate function.
- Update the example and README
- It fixes bug #2