--- BasiliskII/src/Unix/serial_unix.cpp 2000/09/25 17:54:01 1.6 +++ BasiliskII/src/Unix/serial_unix.cpp 2002/02/07 16:10:55 1.10 @@ -1,7 +1,7 @@ /* * serial_unix.cpp - Serial device driver, Unix specific stuff * - * Basilisk II (C) 1997-2000 Christian Bauer + * Basilisk II (C) 1997-2002 Christian Bauer * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -67,16 +67,7 @@ public: fd = -1; input_thread_active = output_thread_active = false; - pthread_attr_init(&thread_attr); -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - if (geteuid() == 0) { - pthread_attr_setinheritsched(&thread_attr, PTHREAD_EXPLICIT_SCHED); - pthread_attr_setschedpolicy(&thread_attr, SCHED_FIFO); - struct sched_param fifo_param; - fifo_param.sched_priority = (sched_get_priority_min(SCHED_FIFO) + sched_get_priority_max(SCHED_FIFO)) / 2 + 2; - pthread_attr_setschedparam(&thread_attr, &fifo_param); - } -#endif + Set_pthread_attr(&thread_attr, 2); } virtual ~XSERDPort() @@ -208,6 +199,8 @@ int16 XSERDPort::open(uint16 config) configure(config); // Start input/output threads + input_thread_cancel = false; + output_thread_cancel = false; if (sem_init(&input_signal, 0, 0) < 0) goto open_error; if (sem_init(&output_signal, 0, 0) < 0)