+// GRG: I have made some changes to wxSocket internal event
+// system; now, all events (INPUT, OUTPUT, CONNECTION, LOST)
+// are always internally monitored; but users will only be
+// notified of these events they are interested in. So we
+// no longer have to change the event mask with SetNotify()
+// in internal functions like DeferRead, DeferWrite, and
+// the like. This solves a lot of problems.
+
+// GRG: I added m_error handling to IO operations. Now,
+// wxSocketBase::Error() correctly indicates if the last
+// operation from {Read, Write, ReadMsg, WriteMsg, Peek,
+// Unread, Discard} failed. Note that now, every function
+// that updates m_lcount, also updates m_error. While I
+// was at it, also fixed an UGLY bug in ReadMsg.
+
+class _wxSocketInternalTimer: public wxTimer