Skip to content

Commit 3ade431

Browse files
committed
misc gc pass
1 parent eb889a7 commit 3ade431

9 files changed

Lines changed: 39 additions & 34 deletions

File tree

SConscript

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Import('env', 'envCython', 'arch', 'common')
1+
Import('env', 'envCython', 'common')
22

33

44
visionipc_dir = Dir('msgq/visionipc')
@@ -12,11 +12,11 @@ msgq_objects = env.SharedObject([
1212
'msgq/msgq.cc',
1313
])
1414
msgq = env.Library('msgq', msgq_objects)
15-
msgq_python = envCython.Program('msgq/ipc_pyx.so', 'msgq/ipc_pyx.pyx', LIBS=envCython["LIBS"]+[msgq, common])
15+
msgq_python = envCython.Program('msgq/ipc_pyx.so', 'msgq/ipc_pyx.pyx', LIBS=envCython["LIBS"]+[msgq]+common)
1616

1717
# Build Vision IPC
1818
vipc_files = ['visionipc.cc', 'visionipc_server.cc', 'visionipc_client.cc']
19-
if arch == "larch64":
19+
if File('/dev/ion').exists():
2020
vipc_files += ['visionbuf_ion.cc']
2121
else:
2222
vipc_files += ['visionbuf.cc']
@@ -26,11 +26,11 @@ vipc_objects = env.SharedObject(vipc_sources)
2626
visionipc = env.Library('visionipc', vipc_objects)
2727

2828

29-
vipc_libs = envCython["LIBS"] + [visionipc, msgq, common]
29+
vipc_libs = envCython["LIBS"] + [visionipc, msgq] + common
3030
envCython.Program(f'{visionipc_dir.abspath}/visionipc_pyx.so', f'{visionipc_dir.abspath}/visionipc_pyx.pyx',
3131
LIBS=vipc_libs)
3232

3333
if GetOption('extras'):
34-
env.Program('msgq/test_runner', ['msgq/test_runner.cc', 'msgq/msgq_tests.cc'], LIBS=[msgq, common])
34+
env.Program('msgq/test_runner', ['msgq/test_runner.cc', 'msgq/msgq_tests.cc'], LIBS=[msgq]+common)
3535

3636
Export('visionipc', 'msgq', 'msgq_python')

SConstruct

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ arch = subprocess.check_output(["uname", "-m"], encoding='utf8').rstrip()
88
if platform.system() == "Darwin":
99
arch = "Darwin"
1010

11-
common = ''
11+
common = []
1212

1313
cpppath = [
1414
catch2.INCLUDE_DIR,
15-
f"#/",
15+
"#/",
1616
'#msgq/',
1717
'/usr/lib/include',
1818
sysconfig.get_paths()['include'],

msgq/__init__.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,26 @@
55

66
from typing import Optional, List, Union
77

8-
assert MultiplePublishersError
9-
assert IpcError
10-
assert toggle_fake_events
11-
assert set_fake_prefix
12-
assert get_fake_prefix
13-
assert delete_fake_prefix
14-
assert wait_for_one_event
8+
__all__ = [
9+
"Context",
10+
"Poller",
11+
"SubSocket",
12+
"PubSocket",
13+
"SocketEventHandle",
14+
"MultiplePublishersError",
15+
"IpcError",
16+
"toggle_fake_events",
17+
"set_fake_prefix",
18+
"get_fake_prefix",
19+
"delete_fake_prefix",
20+
"wait_for_one_event",
21+
"NO_TRAVERSAL_LIMIT",
22+
"context",
23+
"fake_event_handle",
24+
"pub_sock",
25+
"sub_sock",
26+
"drain_sock_raw",
27+
]
1528

1629
NO_TRAVERSAL_LIMIT = 2**64-1
1730

msgq/ipc_pyx.pyx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# distutils: language = c++
22
# cython: c_string_encoding=ascii, language_level=3
33

4-
import sys
54
import time
65
from libcpp.string cimport string
76
from libcpp.vector cimport vector
@@ -56,9 +55,6 @@ def wait_for_one_event(list events, int timeout=-1):
5655
cdef class Event:
5756
cdef cppEvent event;
5857

59-
def __cinit__(self):
60-
pass
61-
6258
cdef setEvent(self, cppEvent event):
6359
self.event = event
6460

msgq/msgq.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ void msgq_wait_for_subscriber(msgq_queue_t *q){
7979
while (*q->num_readers == 0){
8080
// wait for subscriber
8181
}
82-
83-
return;
8482
}
8583

8684
int msgq_new_queue(msgq_queue_t * q, const char * path, size_t size){

msgq/visionipc/__init__.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
from msgq.visionipc.visionipc_pyx import VisionBuf, VisionIpcClient, VisionIpcServer, VisionStreamType, get_endpoint_name
2-
assert VisionBuf
3-
assert VisionIpcClient
4-
assert VisionIpcServer
5-
assert VisionStreamType
6-
assert get_endpoint_name
2+
3+
__all__ = [
4+
"VisionBuf",
5+
"VisionIpcClient",
6+
"VisionIpcServer",
7+
"VisionStreamType",
8+
"get_endpoint_name",
9+
]

msgq/visionipc/visionipc_pyx.pyx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# distutils: language = c++
22
# cython: c_string_encoding=ascii, language_level=3
33

4-
import sys
54
from libc.string cimport memcpy
65
from libc.stdint cimport uint32_t, uint64_t
76
from libcpp cimport bool

msgq/visionipc/visionipc_server.cc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,9 @@ void VisionIpcServer::create_buffers(VisionStreamType type, size_t num_buffers,
3838
// TODO: assert that this type is not created yet
3939
assert(num_buffers < VISIONIPC_MAX_FDS);
4040

41-
size_t size = 0;
42-
size_t stride = 0;
43-
size_t uv_offset = 0;
44-
45-
size = width * height * 3 / 2;
46-
stride = width;
47-
uv_offset = width * height;
41+
size_t size = width * height * 3 / 2;
42+
size_t stride = width;
43+
size_t uv_offset = width * height;
4844

4945
create_buffers_with_sizes(type, num_buffers, width, height, size, stride, uv_offset);
5046
}

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[project]
22
name = "msgq"
33
version = "0.0.1"
4-
description = "Code powering the comma.ai panda"
4+
description = "Lock-free IPC pub/sub message queue"
55
readme = "README.md"
66
requires-python = ">=3.11,<3.13"
77
license = {text = "MIT"}

0 commit comments

Comments
 (0)