Signal-Interrupting Quines Quining has a long history - if you haven't heard of it, click the tag and read up a little on it.

Your Task

Output an infinite series of 1s (with no other spacing [newlines, spaces, etc.]) UNTIL SIGINT (typically CTRL-C) is called. When it is called, output the program source.

Rules


It must be a valid quine:


No reading source from the disk.
See all other standard loopholes relating to quines.

You may use any language.
As this is a code golf, the shortest answer wins!
Python 3, 76 bytes

s="while 1:\n try:print(end='1')\n except:-print('s=%r;exec(s)'%s)";exec(s)


Note that the byte count includes a trailing newline. This also uses -print to error out after quining.