Socket: BUGFIX: Move incorrect v-function call out of FileBody destructor
[senf.git] / Socket / FileHandle.ih
index cdc775d..e87e319 100644 (file)
@@ -83,7 +83,10 @@ namespace senf {
                                            constructor not some arbitrary id even if you overload
                                            all the virtual members. If the file descriptor is -1 the
                                            resulting body/handle is not valid() */
-        virtual ~FileBody();
+
+        // NO DESTRUCTOR HERE - destructors and virtual functions don't mix. What would be in the
+        // the destructor is in 'destroyClose()' which is called from FileHandle::~FileHandle()
+        // *before* the last handle dies.
 
         // no copy
         // no conversion constructors
@@ -98,6 +101,7 @@ namespace senf {
 
         void close();
         void terminate();
+        void destroyClose();
 
         bool readable() const;
         void waitReadable() const;