@@ -1032,7 +1032,7 @@ def rb_path_to_class(path)
1032
1032
def rb_proc_new ( function , value )
1033
1033
Proc . new do |*args |
1034
1034
Truffle ::CExt . rb_tr_unwrap (
1035
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , function , args . map! { |arg | Truffle ::CExt . rb_tr_wrap ( arg ) } ) )
1035
+ Truffle . invoke_primitive ( :call_with_c_mutex , function , args . map! { |arg | Truffle ::CExt . rb_tr_wrap ( arg ) } ) )
1036
1036
end
1037
1037
end
1038
1038
@@ -1087,11 +1087,11 @@ def rb_jump_tag(pos)
1087
1087
end
1088
1088
1089
1089
def rb_yield ( value )
1090
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , rb_block_proc , [ value ] )
1090
+ Truffle . invoke_primitive ( :call_with_c_mutex , rb_block_proc , [ value ] )
1091
1091
end
1092
1092
1093
1093
def rb_yield_splat ( values )
1094
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , rb_block_proc , values )
1094
+ Truffle . invoke_primitive ( :call_with_c_mutex , rb_block_proc , values )
1095
1095
end
1096
1096
1097
1097
def rb_ivar_lookup ( object , name , default_value )
@@ -1243,7 +1243,7 @@ def rb_enumeratorize(obj, meth, args)
1243
1243
1244
1244
def rb_enumeratorize_with_size ( obj , meth , args , size_fn )
1245
1245
return rb_enumeratorize ( obj , meth , args ) if size_fn . nil?
1246
- enum = obj . to_enum ( meth , *args ) { rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , size_fn , [ rb_tr_wrap ( obj ) , rb_tr_wrap ( args ) , rb_tr_wrap ( enum ) ] ) ) }
1246
+ enum = obj . to_enum ( meth , *args ) { rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , size_fn , [ rb_tr_wrap ( obj ) , rb_tr_wrap ( args ) , rb_tr_wrap ( enum ) ] ) ) }
1247
1247
enum
1248
1248
end
1249
1249
@@ -1253,7 +1253,7 @@ def rb_eval_string(str)
1253
1253
1254
1254
def rb_define_alloc_func ( ruby_class , function )
1255
1255
ruby_class . singleton_class . send ( :define_method , :__allocate__ ) do
1256
- Truffle ::CExt . rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , function , [ Truffle ::CExt . rb_tr_wrap ( self ) ] ) )
1256
+ Truffle ::CExt . rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , function , [ Truffle ::CExt . rb_tr_wrap ( self ) ] ) )
1257
1257
end
1258
1258
class << ruby_class
1259
1259
private :__allocate__
@@ -1371,7 +1371,7 @@ def rb_mutex_sleep(mutex, timeout)
1371
1371
1372
1372
def rb_mutex_synchronize ( mutex , func , arg )
1373
1373
mutex . synchronize do
1374
- rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , func , [ rb_tr_wrap ( arg ) ] ) )
1374
+ rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , func , [ rb_tr_wrap ( arg ) ] ) )
1375
1375
end
1376
1376
end
1377
1377
@@ -1433,23 +1433,23 @@ def rb_data_typed_object_wrap(ruby_class, data, data_type, mark, free, size)
1433
1433
def data_finalizer ( free , data_holder )
1434
1434
raise unless free . respond_to? ( :call )
1435
1435
proc {
1436
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , free , [ data_holder . data ] ) unless data_holder . data . nil?
1436
+ Truffle . invoke_primitive ( :call_with_c_mutex , free , [ data_holder . data ] ) unless data_holder . data . nil?
1437
1437
}
1438
1438
end
1439
1439
1440
1440
def data_marker ( mark , data_holder )
1441
1441
raise unless mark . respond_to? ( :call )
1442
1442
proc { |obj |
1443
1443
create_mark_list
1444
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , mark , [ data_holder . data ] ) unless data_holder . data . nil?
1444
+ Truffle . invoke_primitive ( :call_with_c_mutex , mark , [ data_holder . data ] ) unless data_holder . data . nil?
1445
1445
set_mark_list_on_object ( obj )
1446
1446
}
1447
1447
end
1448
1448
1449
1449
def data_sizer ( sizer , data_holder )
1450
1450
raise unless sizer . respond_to? ( :call )
1451
1451
proc {
1452
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , sizer , [ data_holder . data ] )
1452
+ Truffle . invoke_primitive ( :call_with_c_mutex , sizer , [ data_holder . data ] )
1453
1453
}
1454
1454
end
1455
1455
@@ -1483,51 +1483,51 @@ def send_splatted(object, method, args)
1483
1483
1484
1484
def rb_block_call ( object , method , args , func , data )
1485
1485
object . __send__ ( method , *args ) do |*block_args |
1486
- rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , func , [ rb_tr_wrap ( block_args . first ) , data , block_args . size , RARRAY_PTR ( block_args ) , nil ] ) )
1486
+ rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , func , [ rb_tr_wrap ( block_args . first ) , data , block_args . size , RARRAY_PTR ( block_args ) , nil ] ) )
1487
1487
end
1488
1488
end
1489
1489
1490
1490
def rb_ensure ( b_proc , data1 , e_proc , data2 )
1491
1491
begin
1492
- rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , b_proc , [ data1 ] ) )
1492
+ rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , b_proc , [ data1 ] ) )
1493
1493
ensure
1494
- rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , e_proc , [ data2 ] ) )
1494
+ rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , e_proc , [ data2 ] ) )
1495
1495
end
1496
1496
end
1497
1497
1498
1498
def rb_rescue ( b_proc , data1 , r_proc , data2 )
1499
1499
begin
1500
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , b_proc , [ data1 ] )
1500
+ Truffle . invoke_primitive ( :call_with_c_mutex , b_proc , [ data1 ] )
1501
1501
rescue StandardError => e
1502
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , r_proc , [ data2 , rb_tr_wrap ( e ) ] )
1502
+ Truffle . invoke_primitive ( :call_with_c_mutex , r_proc , [ data2 , rb_tr_wrap ( e ) ] )
1503
1503
end
1504
1504
end
1505
1505
1506
1506
def rb_rescue2 ( b_proc , data1 , r_proc , data2 , rescued )
1507
1507
begin
1508
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , b_proc , [ data1 ] )
1508
+ Truffle . invoke_primitive ( :call_with_c_mutex , b_proc , [ data1 ] )
1509
1509
rescue *rescued => e
1510
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , r_proc , [ data2 , rb_tr_wrap ( e ) ] )
1510
+ Truffle . invoke_primitive ( :call_with_c_mutex , r_proc , [ data2 , rb_tr_wrap ( e ) ] )
1511
1511
end
1512
1512
end
1513
1513
1514
1514
def rb_exec_recursive ( func , obj , arg )
1515
1515
result = nil
1516
1516
1517
1517
recursive = Thread . detect_recursion ( obj ) do
1518
- result = rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , func , [ rb_tr_wrap ( obj ) , rb_tr_wrap ( arg ) , 0 ] ) )
1518
+ result = rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , func , [ rb_tr_wrap ( obj ) , rb_tr_wrap ( arg ) , 0 ] ) )
1519
1519
end
1520
1520
1521
1521
if recursive
1522
- rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , func , [ rb_tr_wrap ( obj ) , rb_tr_wrap ( arg ) , 1 ] ) )
1522
+ rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , func , [ rb_tr_wrap ( obj ) , rb_tr_wrap ( arg ) , 1 ] ) )
1523
1523
else
1524
1524
result
1525
1525
end
1526
1526
end
1527
1527
1528
1528
def rb_catch_obj ( tag , func , data )
1529
1529
catch tag do |caught |
1530
- rb_tr_unwrap ( Truffle . invoke_primitive ( :interop_call_c_with_mutex , func , [ rb_tr_wrap ( caught ) , rb_tr_wrap ( data ) , rb_tr_wrap ( nil ) ] ) )
1530
+ rb_tr_unwrap ( Truffle . invoke_primitive ( :call_with_c_mutex , func , [ rb_tr_wrap ( caught ) , rb_tr_wrap ( data ) , rb_tr_wrap ( nil ) ] ) )
1531
1531
end
1532
1532
end
1533
1533
@@ -1597,12 +1597,12 @@ def rb_time_interval_acceptable(time_val)
1597
1597
1598
1598
def rb_thread_create ( fn , args )
1599
1599
Thread . new do
1600
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , fn , [ args ] )
1600
+ Truffle . invoke_primitive ( :call_with_c_mutex , fn , [ args ] )
1601
1601
end
1602
1602
end
1603
1603
1604
1604
def rb_thread_call_with_gvl ( function , data )
1605
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , function , [ data ] )
1605
+ Truffle . invoke_primitive ( :call_with_c_mutex , function , [ data ] )
1606
1606
end
1607
1607
1608
1608
def rb_thread_call_without_gvl ( function , data1 , unblock , data2 )
@@ -1613,7 +1613,7 @@ def rb_thread_call_without_gvl(function, data1, unblock, data2)
1613
1613
end
1614
1614
1615
1615
runner = -> {
1616
- Truffle . invoke_primitive ( :interop_call_c_without_mutex , function , [ data1 ] )
1616
+ Truffle . invoke_primitive ( :call_without_c_mutex , function , [ data1 ] )
1617
1617
}
1618
1618
1619
1619
Thread . current . unblock unblocker , runner
@@ -1627,32 +1627,22 @@ def rb_iterate(iteration, iterated_object, callback, callback_arg)
1627
1627
end
1628
1628
else
1629
1629
call_with_thread_locally_stored_block iteration , iterated_object do |block_arg |
1630
- rb_tr_unwrap Truffle . invoke_primitive ( :interop_call_c_with_mutex , callback , [ rb_tr_wrap ( block_arg ) , rb_tr_wrap ( callback_arg ) , rb_tr_wrap ( nil ) ] )
1630
+ rb_tr_unwrap Truffle . invoke_primitive ( :call_with_c_mutex , callback , [ rb_tr_wrap ( block_arg ) , rb_tr_wrap ( callback_arg ) , rb_tr_wrap ( nil ) ] )
1631
1631
end
1632
1632
end
1633
1633
end
1634
1634
1635
1635
def rb_thread_wait_fd ( fd )
1636
1636
io = IO . for_fd ( fd )
1637
1637
io . autoclose = false
1638
- owned = rb_release_cext_mutex
1639
- begin
1640
- IO . select ( [ io ] )
1641
- ensure
1642
- rb_acquire_cext_mutex if owned
1643
- end
1638
+ Truffle . invoke_primitive ( :call_without_c_mutex , IO . method ( :select ) , [ [ io ] ] )
1644
1639
nil
1645
1640
end
1646
1641
1647
1642
def rb_thread_fd_writable ( fd )
1648
1643
io = IO . for_fd ( fd )
1649
1644
io . autoclose = false
1650
- owned = rb_release_cext_mutex
1651
- begin
1652
- _r , w , _e = IO . select ( nil , [ io ] )
1653
- ensure
1654
- rb_acquire_cext_mutex if owned
1655
- end
1645
+ _r , w , _e = Truffle . invoke_primitive ( :call_without_c_mutex , IO . method ( :select ) , [ nil , [ io ] ] )
1656
1646
w . size
1657
1647
end
1658
1648
@@ -1671,12 +1661,7 @@ def rb_wait_for_single_fd(fd, events, tv_secs, tv_usecs)
1671
1661
if tv_secs > 0 || tv_usecs > 0
1672
1662
timeout = tv_secs + tv_usecs /1.0e6
1673
1663
end
1674
- owned = rb_release_cext_mutex
1675
- begin
1676
- r , w , e = IO . select ( read , write , error , *timeout )
1677
- ensure
1678
- rb_acquire_cext_mutex if owned
1679
- end
1664
+ r , w , e = Truffle . invoke_primitive ( :call_without_c_mutex , IO . method ( :select ) , [ read , write , error , *timeout ] )
1680
1665
if r . nil? # timeout
1681
1666
0
1682
1667
else
@@ -1748,11 +1733,11 @@ def rb_define_hooked_variable(name, gvar, getter, setter)
1748
1733
id = name . to_sym
1749
1734
1750
1735
getter_proc = -> {
1751
- rb_tr_unwrap Truffle . invoke_primitive ( :interop_call_c_with_mutex , getter , [ rb_tr_wrap ( id ) , gvar , rb_tr_wrap ( nil ) ] )
1736
+ rb_tr_unwrap Truffle . invoke_primitive ( :call_with_c_mutex , getter , [ rb_tr_wrap ( id ) , gvar , rb_tr_wrap ( nil ) ] )
1752
1737
}
1753
1738
1754
1739
setter_proc = -> value {
1755
- Truffle . invoke_primitive ( :interop_call_c_with_mutex , setter , [ rb_tr_wrap ( value ) , rb_tr_wrap ( id ) , gvar , rb_tr_wrap ( nil ) ] )
1740
+ Truffle . invoke_primitive ( :call_with_c_mutex , setter , [ rb_tr_wrap ( value ) , rb_tr_wrap ( id ) , gvar , rb_tr_wrap ( nil ) ] )
1756
1741
}
1757
1742
1758
1743
Truffle ::KernelOperations . define_hooked_variable id , getter_proc , setter_proc
0 commit comments