]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/proxmark3.c
fix USB send data timing issue in CMD_DOWNLOADED_SIM_SAMPLES_125K
[proxmark3-svn] / client / proxmark3.c
index 280d07f91fbc3b51d04e1221a61bc05f0d4deb11..2e8ef41820e16da24ffd0c6530f37ada96df0b5d 100644 (file)
@@ -44,22 +44,18 @@ static void *usb_receiver(void *targ) {
 static void *main_loop(void *targ)
 {
        struct main_loop_arg *arg = (struct main_loop_arg*)targ;
+       struct usb_receiver_arg rarg;
        char *cmd = NULL;
+       pthread_t reader_thread;
+
+       if (arg->usb_present == 1) {
+               rarg.run=1;
+               pthread_create(&reader_thread, NULL, &usb_receiver, &rarg);
+       }
 
        while(1) {
-               struct usb_receiver_arg rarg;
-               pthread_t reader_thread;
 
-               rarg.run=1;
-               if (arg->usb_present == 1) {
-                       pthread_create(&reader_thread, NULL, &usb_receiver, &rarg);
-               }
                cmd = readline(PROXPROMPT);
-               rarg.run=0;
-               if (arg->usb_present == 1) {
-                       pthread_join(reader_thread, NULL);
-               }
-
                if (cmd) {
                        if (cmd[0] != 0x00) {
                                CommandReceived(cmd);
@@ -71,6 +67,11 @@ static void *main_loop(void *targ)
                        break;
                }
        }
+       
+       if (arg->usb_present == 1) {
+               rarg.run = 0;
+               pthread_join(reader_thread, NULL);
+       }
 
        ExitGraphics();
        pthread_exit(NULL);
Impressum, Datenschutz