Added some warnings for bad cases.
authorNot Zed <NotZed@Ximian.com>
Tue, 24 Jul 2001 00:56:11 +0000 (00:56 +0000)
committerMichael Zucci <zucchi@src.gnome.org>
Tue, 24 Jul 2001 00:56:11 +0000 (00:56 +0000)
2001-07-24  Not Zed  <NotZed@Ximian.com>

* camel-operation.c (camel_operation_register, unregister): Added
some warnings for bad cases.

2001-07-23  Not Zed  <NotZed@Ximian.com>

* camel-operation.c (camel_operation_register): Only insert a hash
entry if we haven't already.
(camel_operation_unregister): Only remove the has entry if the id
is a real thread.

camel/ChangeLog
camel/camel-operation.c

index 6360106..4ababad 100644 (file)
@@ -1,3 +1,15 @@
+2001-07-24  Not Zed  <NotZed@Ximian.com>
+
+       * camel-operation.c (camel_operation_register, unregister): Added
+       some warnings for bad cases.
+
+2001-07-23  Not Zed  <NotZed@Ximian.com>
+
+       * camel-operation.c (camel_operation_register): Only insert a hash
+       entry if we haven't already.
+       (camel_operation_unregister): Only remove the has entry if the id
+       is a real thread.
+
 2001-07-23  Jeffrey Stedfast  <fejj@ximian.com>
 
        * camel-filter-driver.c (do_move): Slight fix for when source ==
index 0b5678d..dce3340 100644 (file)
@@ -291,8 +291,12 @@ void camel_operation_register(CamelOperation *cc)
                }
        }
 
-       cc->id = id;
-       g_hash_table_insert(operation_active, (void *)id, cc);
+       if (cc->id == (~0)) {
+               cc->id = id;
+               g_hash_table_insert(operation_active, (void *)id, cc);
+       } else {
+               g_warning("Re-registering thread %d for cancellation as thread %d", cc->id, id);
+       }
 
        d(printf("registering thread %ld for cancellation\n", id));
 
@@ -322,8 +326,14 @@ void camel_operation_unregister(CamelOperation *cc)
                }
        }
 
-       if (cc)
-               g_hash_table_remove(operation_active, (void *)cc->id);
+       if (cc) {
+               if (cc->id != (~0)) {
+                       g_hash_table_remove(operation_active, (void *)cc->id);
+                       cc->id == ~0;
+               } else {
+                       g_warning("Unregistering an operation that was already unregistered");
+               }
+       }
 
        CAMEL_ACTIVE_UNLOCK();