[pacman-dev] download interrupt mechanism
guillaume at manjaro.org
Wed Aug 26 08:32:07 UTC 2015
Le 25/08/2015 23:34, Dave Reisner a écrit :
> On Tue, Aug 25, 2015 at 09:21:50PM +0200, Guillaume wrote:
>> To not block the GUI, I run trans_commit function in a g_thread and I can't use SIGINT signal. I have no way to correctly stop curl process. I propose to look for a particular value to do it as transaction functions do with TRANS_STATE_INTERRUPTED.Dave Reisner <d at falconindy.com> a écrit :On Aug 25, 2015 7:04 AM, "Guillaume Benoit" <guillaume at manjaro.org> wrote:
> Please don't top post.
> Presumably, you can't use SIGINT because you can't guarantee which
> thread the signal is delivered to. You need to properly guard against
> this situation by blocking SIGINT on threads which aren't the caller of
> trans_commit. With only 1 thread not masking SIGINT, the linux kernel
> will guarantee delivery to this thread.
> Is this correct? Or is there some other reason that you can't rely on
> signal delivery as an interrupt mechanism?
Yes, maybe I can do that but won't it be better for a library to not
have to use signals ?
Knowing that alpm_trans_commit function runs download then packages
transaction, won't it be clearer to have a unique function to cancel the
alpm_trans_interrupt function can already be used to cancel package
transaction, my idea is to complete it to also cancel downloads.
More information about the pacman-dev