[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