4 #include "hashmap_wildcard.h"
11 void printKey(Key *key) {
13 printf("pos = (%d, %d, %d)\n", key->x, key->y, key->z);
15 printf("pos = NULL\n");
18 void printValue(Value *value) {
20 printf("velocity = (%d, %d, %d)\n", value->vX, value->vY, value->vZ);
22 printf("velocity = NULL\n");
25 // Key(3, 2, 6) & Key(1, 3, 3) are hashed to the same slot -> 4
26 // Key(1, 1, 1) & Key(3, 2, 2) are hashed to the same slot -> 0
27 // Key(2, 4, 1) & Key(3, 4, 2) are hashed to the same slot -> 3
28 // Key(3, 4, 5) & Key(1, 4, 3) & Key(1, 1, 6) are hashed to the same slot -> 5
29 // Key(2, 4, 8) & Key(1, 3, 8) -> 9
35 void threadA(void *arg) {
36 Key *k1 = new Key(3, 2, 6);
37 Key *k2 = new Key(1, 3, 3);
38 Key *k3 = new Key(2, 4, 1);
39 Key *k4 = new Key(3, 4, 2);
40 Value *v2 = new Value(10, 10, 10);
41 Value *r1 = table->put(k2, v2);
43 Value *r2 = table->get(k4);
47 void threadB(void *arg) {
48 Key *k1 = new Key(3, 2, 6);
49 Key *k2 = new Key(1, 3, 3);
50 Key *k3 = new Key(2, 4, 1);
51 Key *k4 = new Key(3, 4, 2);
52 Value *v3 = new Value(30, 40, 50);
53 Value *r3 = table->put(k3, v3);
56 int user_main(int argc, char *argv[]) {
57 Key *k1 = new Key(3, 2, 6);
58 Key *k2 = new Key(1, 3, 3);
59 Key *k3 = new Key(2, 4, 1);
60 Key *k4 = new Key(3, 4, 2);
61 Value *v1 = new Value(111, 111, 111);
62 Value *v2 = new Value(222, 222, 222);
68 thrd_create(&t1, threadA, NULL);
69 thrd_create(&t2, threadB, NULL);