def addUser_InHash(username, password, clearanceLvl):
print("Adding user in hash")
hashID = 0
hashString = username + password
hashIncIndex = 0 # This is used to increment "hashIncrement"
added = False
for i in hashString:
hashID += ord(i)
hashID = hashID % hashKey
print(hashID, "hashID in addUser")
try:
with open("LoginHashTable.pickle", "rb") as file:
saved_data = pickle.load(file)
print("Original")
print(saved_data)
except:
saved_data = {}
print("File opened")
while not added:
# Make this so that it can check for unique usernames, using AND statements, and two variables
if hashID in saved_data:
print()
if hashID == (hashKey - 1):
hashID = 0
else:
hashID += hashIncrement[hashIncIndex]
if hashIncIndex != 3:
hashIncIndex += 1 # Increments hashIncrement
else:
hashIncIndex = 0
else:
print("User doesnt exist, adding to hash table")
saved_data[hashID] = [username, password]
print("New Added")
print(saved_data)
added = True
print("Saving updated file addUser_InHash")
with global_lock:
print("past global lock")
with open("LoginHashTable.pickle", "wb") as file:
pickle.dump(saved_data, file)
print(saved_data)
print("Data saved")
Этот код Python останавливается на части "with global_lock" по какой-то странной причине.глобальная блокировка определяется как
global_lock = Lock()
, а мои потоки определяются как
connThread = Thread(target=handler, args=(conn, addr))
, это вызывается другой функцией и должно завершаться так, чтобы Мой клиент (связывался с сервером с этим кодомнаходится в) может продолжить. На данный момент не запущены другие потоки, так как я перезагружаю сервер каждый раз.