5353
5454# Errata
5555## Edge/vertex modification
56- Modifying/deleting vertices and edges inside f() not using submit request
56+ Modifying/deleting vertices and edges inside f() not using submit request
5757can lead to undefined behavior or dead locks. This is because in CONTEXT
5858set to SWITCH or NONE with many starting vertices, can lead to a structure
5959being NULL’d with its lock destroyed while another thread is holding that lock
@@ -64,43 +64,43 @@ mitigate this problem, the client should use submit request which will handle
6464the requests sequentially with destroying structures last.
6565
6666## Graph modification
67- Trying to delete the graph while running will result in undefined behav-
67+ Trying to delete the graph while running will result in undefined behav-
6868ior. Destroying the graph does not lock any thread and thus will cause race
6969conditions. The graph should be deleted only once all threads reach a sink.
7070
7171## Parameter Passing
72- Parameters passed to edges or vertices functions will be free’d immediately
72+ Parameters passed to edges or vertices functions will be free’d immediately
7373after use and therefore will cause an error should they try and be accessed. To
7474mitigate the values may be stored in the edge’s or vertex’s global or shared
7575variables. Any non standard data type, such as struct, is dependent on the user
7676to free its content as the library will only free the pointer to the struct and the
7777pointer to the array of variables.
7878
7979## Illegal Arguments
80- Passing wrong values or wrong number of variables to any function will result
80+ Passing wrong values or wrong number of variables to any function will result
8181in failure. A client should be aware of which vertices connect and what edges
8282it has and the proper handling required between such connections. Should the
8383client choose to dynamically add/remove vertices or edges or even modify while
8484running should be aware of the changes that may occur in the graph and the
8585resulting change in dependence on proper variable handling.
8686
8787## Graph Modification (cont.)
88- It is possible to modify the graph while it is running. To do so the client
88+ It is possible to modify the graph while it is running. To do so the client
8989should submit request to add a change or pause the graph. Making any changes
9090externally may result in undefined behavior if done improperly. Modifying the
9191graph directly while running could result in failure.
9292 Should the number of init vertex args not much the number of vertices in
9393the start set the program will result in an error.
9494
9595## Data Structure Errata
96- Stacks and AVLTree can take non malloc’d data and function normally
96+ Stacks and AVLTree can take non malloc’d data and function normally
9797within scope of those non malloc’d data. However, in another scope the memory
9898will be unaddressable and thus should be malloc’d memory instead. The stack
9999and AVL Tree wll not free the void * data since the void * data structure is
100100unknown to them and thus the client should free the memory.
101101
102102## SWITCH_UNSAFE
103- Should SWITCH_USNAFE be used as the context, then the graph will run like
103+ Should SWITCH_USNAFE be used as the context, then the graph will run like
104104how it runs in SWITCH, but the variables shared between the edge and the second vertex
105105b will be passed to the edges function. Trying to read the shared variables may lead to a
106106race condition in which vertex b or one/some of it's edges are modifying those varibales.
0 commit comments