@adriansev : I had a look into the issue, in Python SIGINT is by default translated into a KeyboardInterrupt, if you ignore this exception SIGINT will have no effect on you.

You can replace the default signal handler for SIGINT with signal.signal(), now the handler you provide will be called with two arguments, see: https://docs.python.org/3/library/signal.html#signal.signal

The handler is called with two arguments: the signal number and the current stack frame (None or a frame object; for a description of frame objects, see the description in the type hierarchy or see the attribute descriptions in the inspect module).

I suppose that's why your script does not work as your handler expects 3 arguments:
def catch(self, signum, frame):

I tested it with the following code snippet:

import signal
from XRootD import client

interrupted=False
def handleSigInt( signalNumber, frame ):
  global interrupted
  interrupted=True
signal.signal( signal.SIGINT, handleSigInt )

class MyCopyProgressHandler(client.utils.CopyProgressHandler):
  def should_cancel(self, jobId):
    if interrupted : print 'cancelling due to SIGINT'
    return interrupted

process = client.CopyProcess()
process.add_job( source='/path/to/1GB',
                 target='root://hostname//dir/1GB',
                 force=True)

print process.prepare()
handler = MyCopyProgressHandler()
print process.run( handler )[1]

and it works reasonably well.

Could you have a look and let me know if we can close this issue?


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/issues/1170#issuecomment-610962582", "url": "https://github.com/xrootd/xrootd/issues/1170#issuecomment-610962582", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1