mirror of
https://github.com/Pardus-LiderAhenk/ahenk
synced 2024-11-25 11:12:15 +03:00
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# Author: Volkan Şahin <volkansah.in> <bm.volkansahin@gmail.com>
|
|
|
|
import threading
|
|
|
|
|
|
class Fifo(object):
|
|
def __init__(self):
|
|
self.lock = threading.Lock()
|
|
self.path = '/tmp/liderahenk.fifo'
|
|
|
|
def push(self, content):
|
|
file = None
|
|
self.lock.acquire()
|
|
try:
|
|
file = open(self.path, 'a+')
|
|
file.write(content)
|
|
except Exception as e:
|
|
print('Error:{0}'.format(str(e)))
|
|
finally:
|
|
file.close()
|
|
self.lock.release()
|
|
|
|
def pull(self, queue):
|
|
result = None
|
|
self.lock.acquire()
|
|
try:
|
|
lines = open(self.path, 'rb').readlines()
|
|
if lines is not None and len(lines) > 0:
|
|
result = lines[0].decode("unicode_escape")
|
|
w_file = open(self.path, 'wb')
|
|
w_file.writelines(lines[1:])
|
|
w_file.close()
|
|
except Exception as e:
|
|
print('Error:{0}'.format(str(e)))
|
|
finally:
|
|
self.lock.release()
|
|
queue.put(result)
|