mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-19 12:59:44 -07:00
Merge branch 'master' of https://github.com/Proxmark/proxmark3
This commit is contained in:
commit
a025b74606
1 changed files with 14 additions and 0 deletions
|
@ -333,7 +333,20 @@ bool OpenProxmark(void *port, bool wait_for_port, int timeout, bool flash_mode)
|
||||||
|
|
||||||
void CloseProxmark(void) {
|
void CloseProxmark(void) {
|
||||||
conn.run = false;
|
conn.run = false;
|
||||||
|
|
||||||
|
#ifdef __BIONIC__
|
||||||
|
// In Android O and later, if an invalid pthread_t is passed to pthread_join, it calls fatal().
|
||||||
|
// https://github.com/aosp-mirror/platform_bionic/blob/ed16b344e75f422fb36fbfd91fb30de339475880/libc/bionic/pthread_internal.cpp#L116-L128
|
||||||
|
//
|
||||||
|
// In Bionic libc, pthread_t is an integer.
|
||||||
|
|
||||||
|
if (USB_communication_thread != 0) {
|
||||||
pthread_join(USB_communication_thread, NULL);
|
pthread_join(USB_communication_thread, NULL);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
// pthread_t is a struct on other libc, treat as an opaque memory reference
|
||||||
|
pthread_join(USB_communication_thread, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (sp) {
|
if (sp) {
|
||||||
uart_close(sp);
|
uart_close(sp);
|
||||||
|
@ -351,6 +364,7 @@ void CloseProxmark(void) {
|
||||||
// Clean up our state
|
// Clean up our state
|
||||||
sp = NULL;
|
sp = NULL;
|
||||||
serial_port_name = NULL;
|
serial_port_name = NULL;
|
||||||
|
memset(&USB_communication_thread, 0, sizeof(pthread_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue