title: create and emit gtk signal
body: <p>I am trying to create and emit a GTK signal:</p>
  
  <pre><code>g_signal_new("child-finished",
      G_TYPE_OBJECT,
      G_SIGNAL_RUN_FIRST,
      0,
      NULL, NULL,
      NULL,           // *** I think this is where I need to change it
      G_TYPE_NONE, 0);
  g_signal_connect(G_OBJECT(myWindow), "child-finished", G_CALLBACK(MyCallback), NULL);
  </code></pre>
  
  <p>Here is my code that emits the signal:</p>
  
  <pre><code>gtk_signal_emit_by_name(referenceToMyWindow, "child-finished");
  </code></pre>
  
  <p>And here is my code that handles the signal:</p>
  
  <pre><code>void MyCallback(GtkWidget *w, GdkEvent *e)
  {
      // handler code here
  }
  </code></pre>
  
  <p>When I run the code I get the following error:</p>
  
  <blockquote>
    <p>GLib-GObject-CRITICAL **: g<code>_closure_</code>invoke: assertion `closure->marshal || closure->meta_marshal' failed</p>
  </blockquote>
  
  <p>I know it has something to do with passing a marshaller to the <code>g_signal_new</code> function, but I don't know what a marshaller is, I can't understand <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#GClosureMarshal" rel="nofollow noreferrer">the documentation</a>, and the examples online are few and far between.  How do I declare and connect my own signal?</p>