Summary: | Lots of calls to sighold() in fsexchange when using Solaris doors | ||
---|---|---|---|
Product: | STSF | Reporter: | Alan Coopersmith <alan.coopersmith> |
Component: | ST: Libraries (libST.so and libstsf.so) | Assignee: | STSF mailinglist <stsf> |
Status: | RESOLVED WONTFIX | QA Contact: | |
Severity: | minor | ||
Priority: | medium | ||
Version: | ST-HEAD | ||
Hardware: | SPARC | ||
OS: | Solaris | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Alan Coopersmith
2004-10-19 07:55:26 UTC
I don't know why fsexchange does this when using doors, but it does: sighold(SIGINT); sighold(SIGPIPE); sighold(SIGALRM); sighold(SIGPOLL); ret = door_call(doorfd, &arg); sigrelse(SIGINT); sigrelse(SIGPIPE); sigrelse(SIGALRM); sigrelse(SIGPOLL); We'll have to ask Alex why he needed to block signals here, and why a single call to sigset to hold and release the entire set in one call each was not used. Without blocking the signals ST Font Server did not work within the X11 environment. X server uses the signals quite extensively and the door calls are interruptable but not restartable (since the font server handler is not idempotent.) I never thought it would be a problem, so I never bothered to implement signal blocking and releasing in a single call. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.