projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Talk more about backtraces.
[pintos-anon]
/
solutions
/
p1-2.patch
diff --git
a/solutions/p1-2.patch
b/solutions/p1-2.patch
index a5e743f0e61aaf5cf45c907e56ccb3c86bae8218..a2a040d45f5504a02eb15627c552982e9bfa501f 100644
(file)
--- a/
solutions/p1-2.patch
+++ b/
solutions/p1-2.patch
@@
-81,7
+81,7
@@
diff -X pat -urpN pintos.orig/src/threads/thread.c pintos/src/threads/thread.c
thread_exit (void)
{
+ struct thread *t = thread_current ();
thread_exit (void)
{
+ struct thread *t = thread_current ();
-+ list_elem *e;
++ list_elem *e
, *next
;
+
ASSERT (!intr_context ());
+
ASSERT (!intr_context ());
@@
-93,10
+93,10
@@
diff -X pat -urpN pintos.orig/src/threads/thread.c pintos/src/threads/thread.c
+ latch_release (&t->ready_to_die);
+
+ /* Notify our children that they can die. */
+ latch_release (&t->ready_to_die);
+
+ /* Notify our children that they can die. */
-+ for (e = list_begin (&t->children); e != list_end (&t->children);
-+ e = list_next (e))
++ for (e = list_begin (&t->children); e != list_end (&t->children); e = next)
+ {
+ struct thread *child = list_entry (e, struct thread, children_elem);
+ {
+ struct thread *child = list_entry (e, struct thread, children_elem);
++ next = list_next (e);
+ list_remove (e);
+ sema_up (&child->can_die);
+ }
+ list_remove (e);
+ sema_up (&child->can_die);
+ }