pg_cancel_backend はどのようにクエリーをキャンセルするのか
#PostgreSQL
kill SIGINT する
signal で受け取って pqsignal で登録されたハンドラーを呼び出す
https://github.com/postgres/postgres/blob/master/src/backend/libpq/pqsignal.c
pqsignal(SIGINT, xxxHandler) が色んなファイルにある
postgres.c の StatementCancelHandler メソッドがそれっぽい
https://github.com/postgres/postgres/blob/master/src/backend/tcop/postgres.c
SetLatch (かんぬきをかける) メソッドの引数に MyLatch を渡して実行する