This is noblock.c in view mode; [Download] [Up]
#include "pthread_socket.h" int nonblock_is_set( int fd ) { int non_blocking = FALSE, fd_flags; pthread_lock_global_np(); fd_flags = fcntl( fd, F_GETFL, 0 ); pthread_unlock_global_np(); if( fd_flags & O_NONBLOCK ) non_blocking = TRUE; return( non_blocking ); } /* * Set the input file descriptor to specify non-blocking I/O. The * original value of the file descriptor's flags are saved in the * location referenced by the saved_flags variable. */ int set_fd_nonblock( int fd ) { int st, flags; pthread_lock_global_np(); flags = fcntl( fd, F_GETFL, 0 ); if( flags < 0 ) { pthread_unlock_global_np(); return( NOTOK ); } st = fcntl( fd, F_SETFL, (flags |= O_NONBLOCK) ); pthread_unlock_global_np(); return( st ); } int clear_fd_nonblock( int fd ) { int st, flags; pthread_lock_global_np(); flags = fcntl( fd, F_GETFL, 0 ); if( flags < 0 ) { pthread_unlock_global_np(); return( NOTOK ); } st = fcntl( fd, F_SETFL, (flags &= ~O_NONBLOCK) ); pthread_unlock_global_np(); return( st ); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.