Found the fix for the alarm problem on signaling.  You need alarm()
to be called in alarm_msec() because it requires an alarm call.