Sean Hefty [Fri, 5 Mar 2010 18:53:35 +0000 (10:53 -0800)]
winverbs/nd: do not convert wv_io_timeout to nd_timeout
wv_io_timeout is an error value, but nd_timeout is a
success value. This means that an overlapped request
can be completed in error, but GetOverlappedResult can
return a success value. Instead, if a timeout is fatal,
report the status as wv_io_timeout, but if the timeout
can be retried, then report the status as wv_timeout.
Sean Hefty [Fri, 5 Mar 2010 18:53:35 +0000 (10:53 -0800)]
winverbs/nd: do not convert wv_io_timeout to nd_timeout
wv_io_timeout is an error value, but nd_timeout is a
success value. This means that an overlapped request
can be completed in error, but GetOverlappedResult can
return a success value. Instead, if a timeout is fatal,
report the status as wv_io_timeout, but if the timeout
can be retried, then report the status as wv_timeout.
Sean Hefty [Fri, 5 Mar 2010 17:26:50 +0000 (09:26 -0800)]
winverbs/ep: allow failed connection requests to be retried
Allow a user to retry a connection request if it fails. Report a
'success' timeout value, rather than an error timeout, reset the
EP state, and allow the request to be retried from user space.
Sean Hefty [Fri, 5 Mar 2010 17:26:50 +0000 (09:26 -0800)]
winverbs/ep: allow failed connection requests to be retried
Allow a user to retry a connection request if it fails. Report a
'success' timeout value, rather than an error timeout, reset the
EP state, and allow the request to be retried from user space.
Sean Hefty [Thu, 4 Mar 2010 22:54:46 +0000 (14:54 -0800)]
dapl: fix ring buffer synchronization
The dapl ring buffer implementation is not thread safe. Replace
the use of atomic variables with actual locking to ensure that
there are not races inserting and/or removing items at the same time.
Without proper synchronization, the EVD can report invalid events or
the same event multiple times.
Sean Hefty [Thu, 4 Mar 2010 22:54:46 +0000 (14:54 -0800)]
dapl: fix ring buffer synchronization
The dapl ring buffer implementation is not thread safe. Replace
the use of atomic variables with actual locking to ensure that
there are not races inserting and/or removing items at the same time.
Without proper synchronization, the EVD can report invalid events or
the same event multiple times.
Sean Hefty [Thu, 4 Mar 2010 22:00:34 +0000 (14:00 -0800)]
dapl: fix ring buffer synchronization
The dapl ring buffer implementation is not thread safe. Replace
the use of atomic variables with actual locking to ensure that
there are not races inserting and/or removing items at the same time.
Without proper synchronization, the EVD can report invalid events or
the same event multiple times.
Sean Hefty [Thu, 4 Mar 2010 22:00:34 +0000 (14:00 -0800)]
dapl: fix ring buffer synchronization
The dapl ring buffer implementation is not thread safe. Replace
the use of atomic variables with actual locking to ensure that
there are not races inserting and/or removing items at the same time.
Without proper synchronization, the EVD can report invalid events or
the same event multiple times.
Sean Hefty [Thu, 4 Mar 2010 22:00:34 +0000 (14:00 -0800)]
dapl: fix ring buffer synchronization
The dapl ring buffer implementation is not thread safe. Replace
the use of atomic variables with actual locking to ensure that
there are not races inserting and/or removing items at the same time.
Without proper synchronization, the EVD can report invalid events or
the same event multiple times.