From: Elijah Newren Date: Fri, 30 Jan 2009 20:22:36 GMT Subject: Re: [ANNOUNCE] EasyGit (eg) 0.97 Message-ID: <51419b2c0901301222l2b722714v48db0039180d262b@mail.gmail.com> In-Reply-To: <20090130200307.GA3054@coredump.intra.peff.net> On Fri, Jan 30, 2009 at 1:03 PM, Jeff King wrote: > Ah, OK. I just peeked through the 'eg' source. It looks like you may > have replicated the same bug that I just fixed in git. :) > > You want to make sure that "eg" is the last process to die (i.e., > _after_ the pager). Otherwise after it dies, less has trouble reading > from the terminal (I don't know for sure, but I assume this has to do > with the shell making "eg" the process group leader and magic about > process groups and controlling terminals). > > I think perl may even do the wait() for you under ordinary > circumstances. But, for example, if I kill "eg" with a signal (say, by > hitting ^C), then it will die but the pager will live on. In git, we > catch the signal and wait() before dying. > > So I don't know for sure that is your problem (it really depends on how > much magic perl is doing behind the scenes with wait()ing on children, > and I don't recall the exact details of that). But it is something to > look into. Thanks for the tips; I'll try to take a look and see what I can figure out. Elijah