Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
13
Task/Handle-a-signal/Nim/handle-a-signal-1.nim
Normal file
13
Task/Handle-a-signal/Nim/handle-a-signal-1.nim
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import times, os, strutils
|
||||
|
||||
let t = epochTime()
|
||||
|
||||
proc handler() {.noconv.} =
|
||||
echo "Program has run for ", formatFloat(epochTime() - t, precision = 0), " seconds."
|
||||
quit 0
|
||||
|
||||
setControlCHook(handler)
|
||||
|
||||
for n in 1 .. <int64.high:
|
||||
sleep 500
|
||||
echo n
|
||||
17
Task/Handle-a-signal/Nim/handle-a-signal-2.nim
Normal file
17
Task/Handle-a-signal/Nim/handle-a-signal-2.nim
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import times, os, strutils
|
||||
|
||||
type EKeyboardInterrupt = object of Exception
|
||||
|
||||
proc handler() {.noconv.} =
|
||||
raise newException(EKeyboardInterrupt, "Keyboard Interrupt")
|
||||
|
||||
setControlCHook(handler)
|
||||
|
||||
let t = epochTime()
|
||||
|
||||
try:
|
||||
for n in 1 .. <int64.high:
|
||||
sleep 500
|
||||
echo n
|
||||
except EKeyboardInterrupt:
|
||||
echo "Program has run for ", formatFloat(epochTime() - t, precision = 0), " seconds."
|
||||
11
Task/Handle-a-signal/Sidef/handle-a-signal.sidef
Normal file
11
Task/Handle-a-signal/Sidef/handle-a-signal.sidef
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
var start = Time.sec;
|
||||
|
||||
Sig.INT { |_|
|
||||
Sys.say("Ran for #{Time.sec - start} seconds.");
|
||||
Sys.exit;
|
||||
}
|
||||
|
||||
{ |i|
|
||||
Sys.say(i);
|
||||
Sys.sleep(0.5);
|
||||
} * Math.inf;
|
||||
16
Task/Handle-a-signal/Swift/handle-a-signal.swift
Normal file
16
Task/Handle-a-signal/Swift/handle-a-signal.swift
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import Foundation
|
||||
|
||||
let startTime = NSDate()
|
||||
var signalReceived: sig_atomic_t = 0
|
||||
|
||||
signal(SIGINT) { signal in signalReceived = 1 }
|
||||
|
||||
for var i = 0;; {
|
||||
if signalReceived == 1 { break }
|
||||
usleep(500_000)
|
||||
if signalReceived == 1 { break }
|
||||
print(++i)
|
||||
}
|
||||
|
||||
let endTime = NSDate()
|
||||
print("Program has run for \(endTime.timeIntervalSinceDate(startTime)) seconds")
|
||||
23
Task/Handle-a-signal/Visual-FoxPro/handle-a-signal.visual
Normal file
23
Task/Handle-a-signal/Visual-FoxPro/handle-a-signal.visual
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
*!* In VFP, Ctrl+C is normally used to copy text to the clipboard.
|
||||
*!* Esc is used to stop execution.
|
||||
CLEAR
|
||||
SET ESCAPE ON
|
||||
ON ESCAPE DO StopLoop
|
||||
CLEAR DLLS
|
||||
DECLARE Sleep IN WIN32API INTEGER nMilliSeconds
|
||||
lLoop = .T.
|
||||
n = 0
|
||||
? "Press Esc to Cancel..."
|
||||
t1 = INT(SECONDS())
|
||||
DO WHILE lLoop
|
||||
n = n + 1
|
||||
? n
|
||||
Sleep(500)
|
||||
ENDDO
|
||||
? "Elapsed time:", TRANSFORM(INT(SECONDS()) - t1) + " secs."
|
||||
CLEAR DLLS
|
||||
RETURN TO MASTER
|
||||
|
||||
PROCEDURE StopLoop
|
||||
lLoop = .F.
|
||||
ENDPROC
|
||||
Loading…
Add table
Add a link
Reference in a new issue