Porting Java's ConcurrentHashMap to Rust (part 2)
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
Other Videos By Jon Gjengset
2020-08-19 | Q&A August #2 2020 |
2020-08-09 | Q&A August 2020 |
2020-08-05 | Crust of Rust: Channels |
2020-07-25 | Thesis Talk: The Evaluation Chapter |
2020-06-17 | Crust of Rust: Smart Pointers and Interior Mutability |
2020-05-27 | Crust of Rust: Iterators |
2020-04-29 | Crust of Rust: Declarative Macros |
2020-04-01 | (Partially) fixing a bug in a Rust research database |
2020-03-06 | Considering Rust |
2020-01-19 | Porting Java's ConcurrentHashMap to Rust (part 3) |
2019-12-14 | Porting Java's ConcurrentHashMap to Rust (part 2) |
2019-11-17 | Why are my videos so damn long‽ |
2019-11-17 | Porting Java's ConcurrentHashMap to Rust (part 1) |
2019-10-19 | Rust open-source contributions stream: Rust tools and std::future |
2019-09-14 | The Why, What, and How of Pinning in Rust |
2019-06-16 | Procedural Macros in Rust (part 2) |
2019-06-02 | Procedural Macros in Rust (part 1) |
2019-05-11 | Implementing TCP in Rust (part 3) |
2019-03-16 | Implementing TCP in Rust (part 2) |
2019-02-23 | Implementing TCP in Rust (part 1) |
2019-02-09 | About the channel |