- for (i = GNUNET_CONTAINER_vector_size (rfds->handles) - 1; i >= 0; i--)\r
- {\r
- DWORD dwBytes;\r
-\r
- if (!PeekNamedPipe\r
- (GNUNET_CONTAINER_vector_get_at (rfds->handles, i), NULL, 0,\r
- NULL, &dwBytes, NULL))\r
- {\r
- GNUNET_CONTAINER_vector_remove_at (rfds->handles, i);\r
-\r
- retcode = -1;\r
- SetErrnoFromWinError (GetLastError ());\r
+ {\r
+ struct GNUNET_CONTAINER_SList_Iterator *i;\r
+ int on_next;\r
+\r
+ on_next = GNUNET_NO;\r
+ for (i = GNUNET_CONTAINER_slist_begin (rfds->handles);\r
+ GNUNET_CONTAINER_slist_end (i) != GNUNET_YES;\r
+ on_next || GNUNET_CONTAINER_slist_next (i))\r
+ {\r
+ HANDLE h;\r
+ DWORD dwBytes;\r
+\r
+ h = *(HANDLE *) GNUNET_CONTAINER_slist_get (i, NULL);\r
+ on_next = GNUNET_NO;\r
+\r
+ if (!PeekNamedPipe (h, NULL, 0, NULL, &dwBytes, NULL))\r
+ {\r
+ GNUNET_CONTAINER_slist_erase (i);\r
+ on_next = GNUNET_YES;\r
+\r
+ retcode = -1;\r
+ SetErrnoFromWinError (GetLastError ());\r