]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: Fix thread_execute_crash
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 11 Nov 2016 18:57:49 +0000 (13:57 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:15 +0000 (20:26 -0500)
With the change to have thread_get fill inthe ->hist
pointer, thread_execute was missed and it
needs to fill in the .hist pointer for the
dummy thread created.

I'm not really sure why we need to call a
thread_execute on a function.  When we
could, you know, just call the bloody
thing.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
lib/thread.c

index ba1386af21fc7aaf290ad8936ca0b6913c2cb0e1..64eaae45b9617c26551ba1cf4c55f285a90c8594 100644 (file)
@@ -1490,18 +1490,22 @@ funcname_thread_execute (struct thread_master *m,
                 int val,
                debugargdef)
 {
-  struct thread dummy; 
+  struct cpu_thread_history tmp;
+  struct thread dummy;
 
   memset (&dummy, 0, sizeof (struct thread));
 
   dummy.type = THREAD_EVENT;
   dummy.add_type = THREAD_EXECUTE;
   dummy.master = NULL;
-  dummy.func = func;
   dummy.arg = arg;
   dummy.u.val = val;
 
-  dummy.funcname = funcname;
+  tmp.func = dummy.func = func;
+  tmp.funcname = dummy.funcname = funcname;
+  dummy.hist = hash_get (cpu_record, &tmp,
+                        (void * (*) (void *))cpu_record_hash_alloc);
+
   dummy.schedfrom = schedfrom;
   dummy.schedfrom_line = fromln;