Skip to content

Commit 5157e37

Browse files
author
adde9708
committed
fixed a few bugs and formatting
1 parent 5651ce1 commit 5157e37

File tree

9 files changed

+208
-120
lines changed

9 files changed

+208
-120
lines changed

DMA_cell.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from typing import Union, Tuple, List
21
from timeit import default_timer as timer
2+
from typing import List, Tuple, Union
33

44

55
def dma_list(

email_slicer.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ def email_slicer() -> None:
99
domain = email[email.index("@") + 1 :]
1010

1111
# Format message
12-
message = (
13-
f"Your username is '{username}' and your domain name is '{domain}'"
14-
)
12+
message = f"Your username is '{username}' and your domain name is '{domain}'"
1513

1614
# Print message
1715
print(message)

greeting.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
def greeting() -> str:
22
we_want_to_mess_with_greeting = False
33

4-
if we_want_to_mess_with_greeting == False:
4+
if we_want_to_mess_with_greeting is False:
55
greeting = "Hey and thank you! I didn't get removed!"
66
print(greeting)
77
return greeting

help_queue.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import threading
2+
3+
4+
class Node:
5+
def __init__(self, value):
6+
self.value = value
7+
self.next = None
8+
self.lock = threading.Lock()
9+
10+
11+
class Queue:
12+
def __init__(self):
13+
dummy_value = 0
14+
dummy_node = self.create_node(dummy_value)
15+
if dummy_node is not None:
16+
self.head = dummy_node
17+
self.tail = dummy_node
18+
else:
19+
self.head = None
20+
self.tail = None
21+
22+
def create_node(self, value):
23+
node = Node(value)
24+
return node
25+
26+
def try_remove_front(self, front):
27+
with self.head.lock:
28+
head = self.head
29+
with head.lock:
30+
next_node = head.next
31+
if next_node is not None:
32+
with next_node.lock:
33+
if next_node.value == front:
34+
head.next = next_node.next
35+
return True
36+
return False
37+
38+
def help_finish_enq(self):
39+
with self.tail.lock:
40+
tail = self.tail
41+
with tail.lock:
42+
next_node = tail.next
43+
if next_node is not None:
44+
with next_node.lock:
45+
if next_node == self.tail:
46+
self.tail = next_node
47+
48+
def enqueue(self, value):
49+
new_node = self.create_node(value)
50+
if new_node is not None:
51+
with self.tail.lock:
52+
self.tail.next = new_node
53+
else:
54+
self.tail = new_node
55+
56+
57+
def main():
58+
q = Queue()
59+
60+
front_value = 10
61+
q.enqueue(front_value)
62+
63+
result = q.try_remove_front(front_value)
64+
print("Successfully removed front node:", result)
65+
66+
67+
if __name__ == "__main__":
68+
main()

0 commit comments

Comments
 (0)