File tree Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Original file line number Diff line number Diff line change 1
- use std:: cell:: RefCell ;
2
1
use std:: convert:: TryFrom ;
3
2
use std:: mem:: MaybeUninit ;
4
3
5
4
use anyhow:: anyhow;
6
5
use anyhow:: Error ;
7
6
use graph:: blockchain:: Blockchain ;
8
7
use graph:: data_source:: subgraph;
8
+ use graph:: parking_lot:: RwLock ;
9
9
use graph:: util:: mem:: init_slice;
10
10
use semver:: Version ;
11
11
use wasmtime:: AsContext ;
@@ -168,7 +168,7 @@ pub struct AscHeapCtx {
168
168
// is zeroed when initialized or grown.
169
169
memory : Memory ,
170
170
171
- arena : RefCell < Arena > ,
171
+ arena : RwLock < Arena > ,
172
172
}
173
173
174
174
impl AscHeapCtx {
@@ -207,28 +207,28 @@ impl AscHeapCtx {
207
207
Ok ( Arc :: new ( AscHeapCtx {
208
208
memory_allocate,
209
209
memory,
210
- arena : RefCell :: new ( Arena :: new ( ) ) ,
210
+ arena : RwLock :: new ( Arena :: new ( ) ) ,
211
211
api_version,
212
212
id_of_type,
213
213
} ) )
214
214
}
215
215
216
216
fn arena_start_ptr ( & self ) -> i32 {
217
- self . arena . borrow ( ) . start
217
+ self . arena . read ( ) . start
218
218
}
219
219
220
220
fn arena_free_size ( & self ) -> i32 {
221
- self . arena . borrow ( ) . size
221
+ self . arena . read ( ) . size
222
222
}
223
223
224
224
fn set_arena ( & self , start_ptr : i32 , size : i32 ) {
225
- let mut arena = self . arena . borrow_mut ( ) ;
225
+ let mut arena = self . arena . write ( ) ;
226
226
arena. start = start_ptr;
227
227
arena. size = size;
228
228
}
229
229
230
230
fn allocated ( & self , size : i32 ) {
231
- let mut arena = self . arena . borrow_mut ( ) ;
231
+ let mut arena = self . arena . write ( ) ;
232
232
arena. start += size;
233
233
arena. size -= size;
234
234
}
You can’t perform that action at this time.
0 commit comments