Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site psuvax.UUCP
Path: utzoo!linus!decvax!harpo!seismo!presby!burdvax!psuvax!zaccone
From: zaccone@psuvax.UUCP
Newsgroups: net.unix-wizards
Subject: problems with sigset, sighold and sigrelse.
Message-ID: <185@psuvax.UUCP>
Date: Thu, 4-Aug-83 14:47:23 EDT
Article-I.D.: psuvax.185
Posted: Thu Aug  4 14:47:23 1983
Date-Received: Sat, 6-Aug-83 07:59:00 EDT
Organization: Penn. State Univ.
Lines: 28

In an earlier article, I described some problems that I was having with
sigset, sighold and sigrelse.  Since I wrote that article, I've
discovered that I don't really understand how these routines work.
Therefore, I'm going to restate my problem and ask for more general
help.

I'm trying to write to a device (via 'write') with both TANDEM and RAW
modes set.  I would also like to catch the SIGINT signal, but I don't
want any I/O operation to be interrupted.

Right now, I'm trying something like this:

sigset(SIGINT, fn);

sighold(SIGINT);

some code with writes in it

sigrelse(SIGINT);

Even with this code, some write operation gets interrupted and does not
return normally (# of bytes attempted != # actually written).

Why is this happening?  What am I doing wrong?

Rick Zaccone
Penn State University
{allegra, burdvax}!psuvax!zaccone