-#define exit(x)\
-{\
- if(main_task)\
- {\
- if(main_task == FindTask(NULL))\
- {\
- while(childs) Delay(10*TICKS_PER_SECOND); exit(x);\
- } else {\
- CloseLibrary(SocketBase);\
- childs--;\
- RemTask(NULL);\
- }\
- }\
+#ifdef __amigaos4__
+#define exit(x) \
+{ \
+ if(main_task) \
+ { \
+ if(main_task == FindTask(NULL)) \
+ { \
+ while(childs) Delay(10*TICKS_PER_SECOND); exit(x); \
+ } \
+ else \
+ { \
+ if (ISocket) \
+ { \
+ struct Library *sb = ISocket->Data.LibBase; \
+ DropInterface((struct Interface *)ISocket); \
+ CloseLibrary(sb); \
+ } \
+ childs--; \
+ RemTask(NULL); \
+ } \
+ } \
+ else \
+ { \
+ exit(x); \
+ } \
+}
+#else
+#define exit(x) \
+{ \
+ if(main_task) \
+ { \
+ if(main_task == FindTask(NULL)) \
+ { \
+ while(childs) Delay(10*TICKS_PER_SECOND); exit(x); \
+ } \
+ else \
+ { \
+ CloseLibrary(SocketBase); \
+ childs--; \
+ RemTask(NULL); \
+ } \
+ } \
+ else \
+ { \
+ exit(x); \
+ } \