Porting Java's ConcurrentHashMap to Rust (part 3)
Channel: Jon Gjengset
Date: 2020-01-19

This stream is (probably) the last segment in our journey into porting Java's ConcurrentHashMap to Rust. We start writing some tests for the map, and fix the bugs that they uncover. We also implement the core iterator type for the map, and port a small part of the JDK test suite for ConcurrentHashMap.


The stream starts off with a quick walk-through of TODOs in the code, and then we get into writing some initial tests in 00:16:37. Some intermediate points of interest:

0:00:00 Recap
0:52:04 Why writing a garbage collection test is hard
1:21:37 First concurrent test + pain
2:37:12 Snack time and Q&A
2:47:30 Implementing the iterator
4:59:47 Porting some JDK tests


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=7OcFds2rN5w