- if( Semaphore_Wait(&lep->InCount, 1) != 1 )
- {
- if( channel->Server == NULL )
- return -1;
- return 0;
+ // Wait for a packet to be ready
+ tTime timeout_z = 0, *timeout = ((Flags & VFS_IOFLAG_NOBLOCK) ? &timeout_z : NULL);
+ int rv = VFS_SelectNode(Node, VFS_SELECT_READ, timeout, "IPCPipe Endpoint");
+ if( !rv ) {
+ errno = (Flags & VFS_IOFLAG_NOBLOCK) ? EWOULDBLOCK : EINTR;
+ LEAVE('i', -1);
+ return -1;
+ }
+ if( channel->Server == NULL ) {
+ //errno = EIO;
+ LEAVE('i', -1);
+ return -1;