Porting Java's ConcurrentHashMap to Rust (part 2)
Channel: Jon Gjengset
Date: 2019-12-15

In this stream we continue the work of porting Java's ConcurrentHashMap to Rust. We finish up the concurrent hash table resizing code, and then dive into the safety-critical code around collecting garbage. At this point, the code with support for get, put, and resize compiles, though it has not been tested yet.

There's a short break at 01:51:04 which ends around 01:56:16. The unsafe garbage collection code starts after the break.

You can see our progress at https://github.com/jonhoo/flurry. The Java code we were working from is included in that repository, or you can view it at https://hg.openjdk.java.net/jdk/jdk13/file/0368f3a073a9/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java.

You can watch the live version with comments at https://www.youtube.com/watch?v=wfNFHKImtY8