Robert Haas escribió: > Just for fun, I implemented a toy background worker tonight using the > new bgworker framework. Generally, it went well, and I'm pleased with > the design of the new facility.
Thanks. > However, I did notice one oddity. I initialized the worker flags like > this: > > worker.bgw_flags = BGWORKER_SHMEM_ACCESS; > > And... latches didn't work. It turns out that if you request database > access, then the SIGUSR1 handler is set to procsignal_sigusr1_handler, > which is fine. But if you don't, it gets set to SIG_IGN. And the > result of *that* is that if someone sets a latch for which the > background process is waiting, the background process fails to notice. > > Now, once you understand what's going on here, it's not hard to work > around. But it seems to me that it would be a saner default to set > the signal handler to something like the bgwriter handler, which just > calls latch_sigusr1_handler. Sounds sensible -- done that way. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers