diff options
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-02a | 17 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 17 | ||||
-rw-r--r-- | THANKS | 4 | ||||
-rw-r--r-- | ace/Process_Manager.cpp | 6 | ||||
-rw-r--r-- | ace/TTY_IO.cpp | 35 | ||||
-rw-r--r-- | ace/Token.h | 43 |
7 files changed, 97 insertions, 42 deletions
diff --git a/ChangeLog b/ChangeLog index 992474863cb..b7dc3abe67b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,19 @@ -Thu Jun 15 12:41:05 2000 Yamuna Krishnamurthy <yamuna@cs.wustl.edu> +Thu Jun 15 10:28:05 2000 Martin Stack <mstack@cambertx.com> + + * ace/TTY_IO.cpp (control): Added + + dcb.fDtrControl = DTR_CONTROL_ENABLE; + + for Win32 so that it will have the same default semantics as + Linux. + +Thu Jun 15 07:35:57 2000 Roger Larsson <larssoro@hotmail.com> + + * ace/Process_Manager.cpp: Make sure to grab the lock inside the + terminate() methods and also call remove_proc() rather than + remove(). + +Thu Jun 15 12:41:05 2000 yamuna <yamuna@cs.wustl.edu> * ACE version 5.1.4 released. diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a index 992474863cb..b7dc3abe67b 100644 --- a/ChangeLogs/ChangeLog-02a +++ b/ChangeLogs/ChangeLog-02a @@ -1,4 +1,19 @@ -Thu Jun 15 12:41:05 2000 Yamuna Krishnamurthy <yamuna@cs.wustl.edu> +Thu Jun 15 10:28:05 2000 Martin Stack <mstack@cambertx.com> + + * ace/TTY_IO.cpp (control): Added + + dcb.fDtrControl = DTR_CONTROL_ENABLE; + + for Win32 so that it will have the same default semantics as + Linux. + +Thu Jun 15 07:35:57 2000 Roger Larsson <larssoro@hotmail.com> + + * ace/Process_Manager.cpp: Make sure to grab the lock inside the + terminate() methods and also call remove_proc() rather than + remove(). + +Thu Jun 15 12:41:05 2000 yamuna <yamuna@cs.wustl.edu> * ACE version 5.1.4 released. diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index 992474863cb..b7dc3abe67b 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,4 +1,19 @@ -Thu Jun 15 12:41:05 2000 Yamuna Krishnamurthy <yamuna@cs.wustl.edu> +Thu Jun 15 10:28:05 2000 Martin Stack <mstack@cambertx.com> + + * ace/TTY_IO.cpp (control): Added + + dcb.fDtrControl = DTR_CONTROL_ENABLE; + + for Win32 so that it will have the same default semantics as + Linux. + +Thu Jun 15 07:35:57 2000 Roger Larsson <larssoro@hotmail.com> + + * ace/Process_Manager.cpp: Make sure to grab the lock inside the + terminate() methods and also call remove_proc() rather than + remove(). + +Thu Jun 15 12:41:05 2000 yamuna <yamuna@cs.wustl.edu> * ACE version 5.1.4 released. @@ -996,6 +996,10 @@ Dave McNeely <Dave_McNeely@md.northgrum.com> Eric Malenfant <EMalenfant@interstarinc.com> Roland Fischer <roli@gugus.com> Alexander Libman <alibman@baltimore.com> +Roger Larsson <larssoro@hotmail.com> +Martin Stack <mstack@cambertx.com> +Michael Ravits <miquel@bitsmart.com> +Derek Viljoen <derek@viljoen.com> I would particularly like to thank Paul Stephenson, who worked with me at Ericsson. Paul devised the recursive Makefile scheme that diff --git a/ace/Process_Manager.cpp b/ace/Process_Manager.cpp index be1f9b9ecbd..32804e2ca96 100644 --- a/ace/Process_Manager.cpp +++ b/ace/Process_Manager.cpp @@ -632,6 +632,8 @@ ACE_Process_Manager::terminate (pid_t pid) { ACE_TRACE ("ACE_Process_Manager::terminate"); + ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1)); + // Check for duplicates and bail out if they're already // registered... ssize_t i = this->find_proc (pid); @@ -646,7 +648,7 @@ ACE_Process_Manager::terminate (pid_t pid) { // Save/restore errno. ACE_Errno_Guard error (errno); - this->remove (i); + this->remove_proc (i); return 0; } else @@ -659,6 +661,8 @@ ACE_Process_Manager::terminate (pid_t pid, { ACE_TRACE ("ACE_Process_Manager::terminate"); + ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1)); + // Check for duplicates and bail out if they're already // registered... ssize_t i = this->find_proc (pid); diff --git a/ace/TTY_IO.cpp b/ace/TTY_IO.cpp index 0e7c2e98419..73e033d2675 100644 --- a/ace/TTY_IO.cpp +++ b/ace/TTY_IO.cpp @@ -183,8 +183,8 @@ ACE_TTY_IO::control (Control_Mode cmd, switch (cmd) { case SETPARAMS: - DCB dcb ; - dcb.DCBlength = sizeof dcb ; + DCB dcb; + dcb.DCBlength = sizeof dcb; ::GetCommState (this->get_handle (), &dcb); switch (arg->baudrate) @@ -222,48 +222,49 @@ ACE_TTY_IO::control (Control_Mode cmd, { case 1: dcb.StopBits = ONESTOPBIT; - break ; + break; case 2: dcb.StopBits = TWOSTOPBITS; - break ; + break; default: return -1; } if (arg->parityenb) { - dcb.fParity = TRUE ; + dcb.fParity = TRUE; if (ACE_OS::strcmp ((char *) arg->paritymode, "ODD") == 0 || ACE_OS::strcmp ((char *) arg->paritymode, "odd") == 0) - dcb.Parity = ODDPARITY ; + dcb.Parity = ODDPARITY; else if (ACE_OS::strcmp ((char *) arg->paritymode, "EVEN") == 0 || ACE_OS::strcmp ((char *) arg->paritymode, "even") == 0) - dcb.Parity = EVENPARITY ; + dcb.Parity = EVENPARITY; } else { - dcb.fParity = FALSE ; - dcb.Parity = NOPARITY ; + dcb.fParity = FALSE; + dcb.Parity = NOPARITY; } if (arg->ctsenb) // enable CTS/RTS protocol. { - dcb.fOutxCtsFlow = TRUE ; - dcb.fRtsControl = RTS_CONTROL_HANDSHAKE ; + dcb.fOutxCtsFlow = TRUE; + dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; } else { - dcb.fOutxCtsFlow = FALSE ; - dcb.fRtsControl = RTS_CONTROL_DISABLE ; + dcb.fOutxCtsFlow = FALSE; + dcb.fRtsControl = RTS_CONTROL_DISABLE; } - dcb.fBinary = TRUE ; + dcb.fDtrControl = DTR_CONTROL_ENABLE; + dcb.fBinary = TRUE; ::SetCommState (this->get_handle (), &dcb); // 2/13/97 BWF added drop out timer COMMTIMEOUTS timeouts; - ::GetCommTimeouts (this->get_handle(), &timeouts) ; - timeouts.ReadIntervalTimeout = arg->readtimeoutmsec ; - return ::SetCommTimeouts (this->get_handle (), &timeouts) ; + ::GetCommTimeouts (this->get_handle(), &timeouts); + timeouts.ReadIntervalTimeout = arg->readtimeoutmsec; + return ::SetCommTimeouts (this->get_handle (), &timeouts); case GETPARAMS: ACE_NOTSUP_RETURN (-1); // Not yet implemented. diff --git a/ace/Token.h b/ace/Token.h index 23fe558cade..7eefa015b12 100644 --- a/ace/Token.h +++ b/ace/Token.h @@ -39,28 +39,29 @@ class ACE_Export ACE_Token // token that is serviced in strict FIFO ordering and that also // supports (1) recursion and (2) readers/writer semantics. // - // = DESCRIPTION This class is a more general-purpose - // synchronization mechanism than SunOS 5.x mutexes. For example, - // it implements "recursive mutex" semantics, where a thread that - // owns the token can reacquire it without deadlocking. If the same - // thread calls <acquire> multiple times, however, it must call - // <release> an equal number of times before the token is actually - // released. + // = DESCRIPTION + // This class is a more general-purpose synchronization mechanism + // than many native OS mutexes. For example, it implements + // "recursive mutex" semantics, where a thread that owns the token + // can reacquire it without deadlocking. If the same thread calls + // <acquire> multiple times, however, it must call <release> an + // equal number of times before the token is actually released. // - // Threads that are blocked awaiting the token are serviced in - // strict FIFO order as other threads release the token (Solaris and - // Pthread mutexes don't strictly enforce an acquisition order). - // There are two FIFO lists within the class. Write acquires always - // have higher priority over read acquires. Which means, if you use - // both write/read operations, care must be taken to avoid - // starvation on the readers. Notice that the read/write acquire - // operations do not have the usual semantic of reader/writer locks. - // Only one reader can acquire the token at a time (which is - // different from the usual reader/writer locks where several - // readers can acquire a lock at the same time as long as there is - // no writer waiting for the lock.) We choose the names 1.) to - // borrow the semantic to give writers higher priority, and, 2.) to - // support a common interface over all locking classes in ACE. + // Threads that are blocked awaiting the token are serviced in + // strict FIFO order as other threads release the token (Solaris + // and Pthread mutexes don't strictly enforce an acquisition + // order). There are two FIFO lists within the class. Write + // acquires always have higher priority over read acquires. Which + // means, if you use both write/read operations, care must be + // taken to avoid starvation on the readers. Notice that the + // read/write acquire operations do not have the usual semantic of + // reader/writer locks. Only one reader can acquire the token at + // a time (which is different from the usual reader/writer locks + // where several readers can acquire a lock at the same time as + // long as there is no writer waiting for the lock). We choose + // the names to (1) borrow the semantic to give writers higher + // priority and (2) support a common interface for all locking + // classes in ACE. public: // = Initialization and termination. |