Compare commits

...

3 Commits

Author SHA1 Message Date
Koushik Dutta
4be848c440 prepublish 2023-03-15 01:28:05 -07:00
Koushik Dutta
b33422b066 server: fix python fork hangs 2023-03-15 01:28:01 -07:00
Koushik Dutta
77418684da server: publish 2023-03-14 23:50:22 -07:00
5 changed files with 12 additions and 9 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/python-codecs",
"version": "0.1.2",
"version": "0.1.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/python-codecs",
"version": "0.1.2",
"version": "0.1.3",
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/python-codecs",
"version": "0.1.2",
"version": "0.1.3",
"description": "Python Codecs for Scrypted",
"keywords": [
"scrypted",

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/server",
"version": "0.7.7",
"version": "0.7.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/server",
"version": "0.7.7",
"version": "0.7.8",
"license": "ISC",
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.10",

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/server",
"version": "0.7.8",
"version": "0.7.9",
"description": "",
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.10",

View File

@@ -45,7 +45,10 @@ class StreamPipeReader:
b = bytes(0)
while len(b) < n:
self.conn.poll()
b += os.read(self.conn.fileno(), n - len(b))
add = os.read(self.conn.fileno(), n - len(b))
if not len(add):
raise Exception('unable to read requested bytes')
b += add
return b
async def read(self, n):
@@ -482,9 +485,8 @@ class PluginRemote:
schedule_exit_check()
async def getFork():
fd = os.dup(parent_conn.fileno())
reader = StreamPipeReader(parent_conn)
forkPeer, readLoop = await rpc_reader.prepare_peer_readloop(self.loop, reader = reader, writeFd = fd)
forkPeer, readLoop = await rpc_reader.prepare_peer_readloop(self.loop, reader = reader, writeFd = parent_conn.fileno())
forkPeer.peerName = 'thread'
async def forkReadLoop():
try:
@@ -493,6 +495,7 @@ class PluginRemote:
# traceback.print_exc()
print('fork read loop exited')
finally:
parent_conn.close()
reader.executor.shutdown()
asyncio.run_coroutine_threadsafe(forkReadLoop(), loop=self.loop)
getRemote = await forkPeer.getParam('getRemote')