[svn:parrot] r38003 - in trunk/src: io pmc

Infinoid at svn.parrot.org Infinoid at svn.parrot.org
Fri Apr 10 05:12:07 UTC 2009


Author: Infinoid
Date: Fri Apr 10 05:12:06 2009
New Revision: 38003
URL: https://trac.parrot.org/parrot/changeset/38003

Log:
[io] Implement Parrot_io_socket_is_closed().
The Socket "get_bool" function (which is where I ripped this functionality from) had documentation that wasn't quite accurate; fix that too.

Modified:
   trunk/src/io/socket_api.c
   trunk/src/pmc/socket.pmc

Modified: trunk/src/io/socket_api.c
==============================================================================
--- trunk/src/io/socket_api.c	Fri Apr 10 04:53:51 2009	(r38002)
+++ trunk/src/io/socket_api.c	Fri Apr 10 05:12:06 2009	(r38003)
@@ -110,7 +110,15 @@
 Parrot_io_socket_is_closed(ARGMOD(PMC *socket))
 {
     ASSERT_ARGS(Parrot_io_socket_is_closed)
-    return 0;
+#ifdef PIO_OS_WIN32
+    return (PARROT_SOCKET(SELF)->os_handle == (PIOHANDLE)INVALID_HANDLE_VALUE);
+#endif
+#ifdef PIO_OS_UNIX
+    return (PARROT_SOCKET(SELF)->os_handle == (PIOHANDLE)-1);
+#endif
+#ifdef PIO_OS_STDIO
+    return (PARROT_SOCKET(SELF)->os_handle == (PIOHANDLE)NULL);
+#endif
 }
 
 /*

Modified: trunk/src/pmc/socket.pmc
==============================================================================
--- trunk/src/pmc/socket.pmc	Fri Apr 10 04:53:51 2009	(r38002)
+++ trunk/src/pmc/socket.pmc	Fri Apr 10 05:12:06 2009	(r38003)
@@ -109,23 +109,14 @@
 
 =item C<INTVAL get_bool()>
 
-Returns whether the Socket was successfully created.
+Returns whether the Socket is currently open.
 
 =cut
 
 */
 
     VTABLE INTVAL get_bool() {
-        /* Initialize the os_handle to the platform-specific value for closed. */
-#ifdef PIO_OS_WIN32
-        return (PARROT_SOCKET(SELF)->os_handle != (PIOHANDLE)INVALID_HANDLE_VALUE);
-#endif
-#ifdef PIO_OS_UNIX
-        return (PARROT_SOCKET(SELF)->os_handle != (PIOHANDLE)-1);
-#endif
-#ifdef PIO_OS_STDIO
-        return (PARROT_SOCKET(SELF)->os_handle != (PIOHANDLE)NULL);
-#endif
+        return !Parrot_io_socket_is_closed(SELF);
     }
 
 /*


More information about the parrot-commits mailing list