@@ -35,6 +35,7 @@ def test_main(self, ipc_device, nmrs):
3535 device = ipc_device
3636 options = DeviceMemoryResourceOptions (max_size = POOL_SIZE , ipc_enabled = True )
3737 mrs = [DeviceMemoryResource (device , options = options ) for _ in range (nmrs )]
38+ buffers = []
3839
3940 try :
4041 buffers = [mr .allocate (NBYTES , stream = device .default_stream ) for mr , _ in zip (cycle (mrs ), range (NTASKS ))]
@@ -45,8 +46,11 @@ def test_main(self, ipc_device, nmrs):
4546 pgen = PatternGen (device , NBYTES )
4647 for buffer in buffers :
4748 pgen .verify_buffer (buffer , seed = True )
48- buffer .close ()
4949 finally :
50+ for buffer in buffers :
51+ buffer .close ()
52+ # TODO(seberg): 2026-06: mr close may be unsafe with incomplete `buf.close()`
53+ device .sync ()
5054 for mr in mrs :
5155 mr .close ()
5256
@@ -77,6 +81,7 @@ def test_main(self, ipc_device, nmrs):
7781 device = ipc_device
7882 options = DeviceMemoryResourceOptions (max_size = POOL_SIZE , ipc_enabled = True )
7983 mrs = [DeviceMemoryResource (device , options = options ) for _ in range (nmrs )]
84+ buffers = []
8085
8186 try :
8287 buffers = [mr .allocate (NBYTES , stream = device .default_stream ) for mr , _ in zip (cycle (mrs ), range (NTASKS ))]
@@ -90,8 +95,11 @@ def test_main(self, ipc_device, nmrs):
9095 pgen = PatternGen (device , NBYTES )
9196 for buffer in buffers :
9297 pgen .verify_buffer (buffer , seed = True )
93- buffer .close ()
9498 finally :
99+ for buffer in buffers :
100+ buffer .close ()
101+ # TODO(seberg): 2026-06: mr close may be unsafe with incomplete `buf.close()`
102+ device .sync ()
95103 for mr in mrs :
96104 mr .close ()
97105
@@ -127,6 +135,7 @@ def test_main(self, ipc_device, nmrs):
127135 device = ipc_device
128136 options = DeviceMemoryResourceOptions (max_size = POOL_SIZE , ipc_enabled = True )
129137 mrs = [DeviceMemoryResource (device , options = options ) for _ in range (nmrs )]
138+ buffers = []
130139
131140 try :
132141 buffers = [mr .allocate (NBYTES , stream = device .default_stream ) for mr , _ in zip (cycle (mrs ), range (NTASKS ))]
@@ -137,8 +146,11 @@ def test_main(self, ipc_device, nmrs):
137146 pgen = PatternGen (device , NBYTES )
138147 for buffer in buffers :
139148 pgen .verify_buffer (buffer , seed = True )
140- buffer .close ()
141149 finally :
150+ for buffer in buffers :
151+ buffer .close ()
152+ # TODO(seberg): 2026-06: mr close may be unsafe with incomplete `buf.close()`
153+ device .sync ()
142154 for mr in mrs :
143155 mr .close ()
144156
0 commit comments