*** empty log message ***
authorMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 22 Aug 2006 14:08:45 +0000 (14:08 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 22 Aug 2006 14:08:45 +0000 (14:08 +0000)
mmsoftware/js/jslib/fd.js

index b75e69e..953261a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fd.js,v 1.10 2006/08/22 13:47:18 mmondor Exp $ */
+/* $Id: fd.js,v 1.11 2006/08/22 14:08:45 mmondor Exp $ */
 
 /*
  * Copyright (C) 2006, Matthew Mondor
@@ -173,17 +173,21 @@ FD.prototype.bwrite = function(data, immediate, poll)
                try {
                        len = this.write(data);
                        if (len < 1) {
+                               this.events &= ~FD.POLLOUT;
                                this.berror = this.BERROR;
                                return -1;
                        }
                } catch (x) {
                        if (this.errno != Errno.EAGAIN) {
+                               this.events &= ~FD.POLLOUT;
                                this.berror = this.BERROR;
                                return -1;
                        }
                }
-               if (len == data.length)
+               if (len == data.length) {
+                       this.events &= ~FD.POLLOUT;
                        return 0;
+               }
 
                this.bwrite_buffer += data.substr(len);
                /* FALLTHROUGH */
@@ -220,11 +224,13 @@ FD.prototype.bflushw = function(poll)
                try {
                        len = this.write(this.bwrite_buffer);
                        if (len < 1) {
+                               this.events &= ~FD.POLLOUT;
                                this.berror = this.BERROR;
                                return -1;
                        }
                } catch (x) {
                        if (this.errno != Errno.EAGAIN) {
+                               this.events &= ~FD.POLLOUT;
                                this.berror = this.BERROR;
                                return -1;
                        }