summaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-16 15:35:26 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-16 15:35:26 +0000
commita746af82db7c8da8aee3f13c6c1668db857f913c (patch)
tree0c0cc5fdd1c2567c317c9bba3233e37ed0b1f8d2 /libgomp
parent10c896daa3e6c7d706627fbcaf84d9dced1d146f (diff)
downloadgcc-a746af82db7c8da8aee3f13c6c1668db857f913c.tar.gz
* team.c (gomp_team_end): Free team immediately if it has
just one thread. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137886 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/ChangeLog5
-rw-r--r--libgomp/team.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 671b48bde76..ded506b0636 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,8 @@
+2008-07-16 Jakub Jelinek <jakub@redhat.com>
+
+ * team.c (gomp_team_end): Free team immediately if it has
+ just one thread.
+
2008-07-08 David Edelsohn <edelsohn@gnu.org>
* testsuite/libgomp.c++/c++.exp: Append multilib library path.
diff --git a/libgomp/team.c b/libgomp/team.c
index 18b02e72f90..224236c6604 100644
--- a/libgomp/team.c
+++ b/libgomp/team.c
@@ -498,7 +498,8 @@ gomp_team_end (void)
gomp_mutex_destroy (&team->work_share_list_free_lock);
#endif
- if (__builtin_expect (thr->ts.team != NULL, 0))
+ if (__builtin_expect (thr->ts.team != NULL, 0)
+ || __builtin_expect (team->nthreads == 1, 0))
free_team (team);
else
{