The kernel from 2.3.31 on supports the rt_tgsigqueueinfo syscall. Use it to implement the non-standard extension which, like sigqueue, can pass additional data to the receiving thread.