U256Map Example

Code Example

The ConcurrenctMapTest contract tests the concurrent behavior of the U256Map contract by utilizing a Multiprocess instance to execute multiple tasks simultaneously.

ConcurrenctMapTest {
    U256Map map = new U256Map();
    function call() public  { 
       Multiprocess mp = new Multiprocess(2); 
       mp.push(50000, address(this), abi.encodeWithSignature("assigner(uint256)", 11));
       mp.push(50000, address(this), abi.encodeWithSignature("assigner(uint256)", 33));
       require(mp.length() == 2);

        (,uint256 v) = map.get(11);
        require(v == 110); 

        (,v) = map.get(33);
        require(v == 330); 

        map.del(11);
        require(map.length() == 1); 
        require(!map.exist(11));

        (,v) = map.get(33);
        require(v == 330); 
        map.del(33);
        require(map.length() == 0); 

        require(!map.exist(11));
        require(!map.exist(33));
    }

    function assigner(uint256 v)  public {
        map.set(v, v * 10);
    }
} 

Last updated