aboutsummaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rw-r--r--main.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..d571bac
--- /dev/null
+++ b/main.py
@@ -0,0 +1,41 @@
+import random
+import threading
+import time
+import sys
+
+mem = {}
+threads = []
+
+def thread(a, b, c, d):
+ def f():
+ # print(a, b, c, d)
+ try:
+ match a:
+ case 'set':
+ try:
+ mem[b] = int(c)
+ except:
+ mem[b] = c
+ case 'print':
+ print(mem[c])
+ case 'add':
+ mem[b] += mem[c]
+ case 'sub':
+ mem[b] -= mem[c]
+ case 'mul':
+ mem[b] *= mem[c]
+ case 'div':
+ mem[b] /= mem[c]
+ if mem[b] > 0 and int(d) > 0:
+ time.sleep(0.001)
+ threads[int(d) - 1]()
+ except:
+ return
+ return f
+
+with open(sys.argv[1]) as f:
+ for line in f.readlines():
+ threads.append(thread(*line.split()))
+
+for thread in sorted(threads, key=lambda _: random.random()):
+ threading.Thread(target=thread).start()