diff options
| -rw-r--r-- | gpgme/ChangeLog | 10 | ||||
| -rw-r--r-- | gpgme/rungpg.c | 9 | ||||
| -rw-r--r-- | gpgme/w32-io.c | 17 | 
3 files changed, 25 insertions, 11 deletions
| diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 458b3c97..6b63ca21 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,6 +1,14 @@ +2001-02-01  Werner Koch  <[email protected]> + +	* w32-io.c (set_synchronize): Add EVENT_MODIFY_STATE.  Add Debug +	code to all Set/ResetEvent(). + +	* rungpg.c (read_status): Check for end of stream only if we have +	an r.  By Timo. +  2001-01-31  Werner Koch  <[email protected]> -	* wait.c (_gpgme_wait_on_condition): Remove all exit code processing. +	* wait.c (_gpgme_wait_on_condition): Removed all exit code processing.  	(propagate_term_results,clear_active_fds): Removed.  	(count_active_fds): Renamed to ..   	(count_active_and_thawed_fds): .. this and count only thawed fds.  diff --git a/gpgme/rungpg.c b/gpgme/rungpg.c index 5250b565..36b6f799 100644 --- a/gpgme/rungpg.c +++ b/gpgme/rungpg.c @@ -1016,10 +1016,11 @@ read_status ( GpgObject gpg )                              gpg->status.fnc ( gpg->status.fnc_value,                                                 r->code, rest);                          } -                    } -                    if ( r->code == STATUS_END_STREAM ) { -                        if ( gpg->cmd.used ) -                            _gpgme_freeze_fd ( gpg->cmd.fd ); +                     +                        if ( r->code == STATUS_END_STREAM ) { +                            if ( gpg->cmd.used ) +                                _gpgme_freeze_fd ( gpg->cmd.fd ); +                        }                      }                  }                  /* To reuse the buffer for the next line we have to diff --git a/gpgme/w32-io.c b/gpgme/w32-io.c index 82e8f819..f0d31a0f 100644 --- a/gpgme/w32-io.c +++ b/gpgme/w32-io.c @@ -87,7 +87,7 @@ set_synchronize (HANDLE h)       * way to do it is by duplicating the handle.  Tsss.. */      if (!DuplicateHandle( GetCurrentProcess(), h,                            GetCurrentProcess(), &tmp, -                          SYNCHRONIZE, FALSE, 0 ) ) { +                          EVENT_MODIFY_STATE|SYNCHRONIZE, FALSE, 0 ) ) {          DEBUG1 ("** Set SYNCRONIZE failed: ec=%d\n", (int)GetLastError());      }      else { @@ -112,7 +112,8 @@ reader (void *arg)          /* leave a one byte gap so that we can see wheter it is empty or full*/          if ((c->writepos + 1) % READBUF_SIZE == c->readpos) {               /* wait for space */ -            ResetEvent (c->have_space_ev); +            if (!ResetEvent (c->have_space_ev) ) +                DEBUG1 ("ResetEvent failed: ec=%d", (int)GetLastError ());              UNLOCK (c->mutex);              DEBUG1 ("reader thread %p: waiting for space ...", c->thread_hd );              WaitForSingleObject (c->have_space_ev, INFINITE); @@ -149,11 +150,13 @@ reader (void *arg)          LOCK (c->mutex);          c->writepos = (c->writepos + nread) % READBUF_SIZE; -        SetEvent (c->have_data_ev); +        if ( !SetEvent (c->have_data_ev) ) +            DEBUG1 ("SetEvent failed: ec=%d", (int)GetLastError ());          UNLOCK (c->mutex);      }      /* indicate that we have an error or eof */ -    SetEvent (c->have_data_ev); +    if ( !SetEvent (c->have_data_ev) ) +        DEBUG1 ("SetEvent failed: ec=%d", (int)GetLastError ());      DEBUG1 ("reader thread %p ended", c->thread_hd );      return 0; @@ -288,9 +291,11 @@ _gpgme_io_read ( int fd, void *buffer, size_t count )      memcpy (buffer, c->buffer+c->readpos, nread);      c->readpos = (c->readpos + nread) % READBUF_SIZE;      if (c->readpos == c->writepos && !c->eof) { -        ResetEvent (c->have_data_ev); +        if ( !ResetEvent (c->have_data_ev) ) +            DEBUG1 ("ResetEvent failed: ec=%d", (int)GetLastError ());      } -    SetEvent (c->have_space_ev); +    if (!SetEvent (c->have_space_ev)) +        DEBUG1 ("SetEvent failed: ec=%d", (int)GetLastError ());      UNLOCK (c->mutex);      DEBUG2 ("fd %d: got %d bytes\n", fd, nread ); | 
