aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2013-05-16 20:03:48 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2013-05-22 23:19:18 +0100
commit78d9a9bf0758140e0e8c03c5e8d3288f74efbb51 (patch)
tree1c0b25ba6358e80d0fe535fb49e3cce8d243e6a3 /src
parent39834ca3b05fadb14f855a8ab6dcea98c35738a7 (diff)
downloadpaludis-78d9a9bf0758140e0e8c03c5e8d3288f74efbb51.tar.gz
paludis-78d9a9bf0758140e0e8c03c5e8d3288f74efbb51.tar.xz
Switch to std mutex and condition_variable
Diffstat (limited to 'src')
-rw-r--r--src/clients/cave/cmd_execute_resolution.cc80
-rw-r--r--src/clients/cave/cmd_generate_metadata.cc18
-rw-r--r--src/clients/cave/cmd_manage_search_index.cc10
-rw-r--r--src/clients/cave/cmd_resolve_display_callback.cc15
-rw-r--r--src/clients/cave/cmd_resolve_display_callback.hh5
-rw-r--r--src/clients/cave/cmd_search.cc10
-rw-r--r--src/clients/cave/cmd_sync.cc4
-rw-r--r--src/clients/cave/resolve_common.cc3
8 files changed, 71 insertions, 74 deletions
diff --git a/src/clients/cave/cmd_execute_resolution.cc b/src/clients/cave/cmd_execute_resolution.cc
index 51165aae0..d3b28f6cb 100644
--- a/src/clients/cave/cmd_execute_resolution.cc
+++ b/src/clients/cave/cmd_execute_resolution.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009, 2010, 2011, 2012 Ciaran McCreesh
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -44,7 +44,6 @@
#include <paludis/util/indirect_iterator-impl.hh>
#include <paludis/util/wrapped_output_iterator.hh>
#include <paludis/util/executor.hh>
-#include <paludis/util/mutex.hh>
#include <paludis/util/timestamp.hh>
#include <paludis/util/make_null_shared_ptr.hh>
#include <paludis/util/process.hh>
@@ -88,6 +87,7 @@
#include <cstdlib>
#include <algorithm>
#include <unordered_map>
+#include <mutex>
using namespace paludis;
using namespace cave;
@@ -146,11 +146,11 @@ namespace
};
std::string lock_pipe_command(
- Mutex & mutex,
+ std::mutex & mutex,
ProcessPipeCommandFunction f,
const std::string & s)
{
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
return f(s);
}
@@ -387,11 +387,11 @@ namespace
}
void set_output_manager(
- Mutex & mutex,
+ std::recursive_mutex & mutex,
JobActiveState & active_state,
const std::shared_ptr<OutputManager> & o)
{
- Lock lock(mutex);
+ std::unique_lock<std::recursive_mutex> lock(mutex);
active_state.set_output_manager(o);
}
@@ -427,9 +427,9 @@ namespace
const int n_fetch_jobs,
const PackageDepSpec & id_spec,
const int x, const int y, const int f, const int s, bool normal_only, const bool was_target,
- Mutex & job_mutex,
+ std::recursive_mutex & job_mutex,
JobActiveState & active_state,
- Mutex & executor_mutex)
+ std::mutex & executor_mutex)
{
Context context("When fetching for '" + stringify(id_spec) + "':");
@@ -490,9 +490,9 @@ namespace
const int x, const int y,
const int f, const int s,
const bool was_target,
- Mutex & job_mutex,
+ std::recursive_mutex & job_mutex,
JobActiveState & active_state,
- Mutex & executor_mutex)
+ std::mutex & executor_mutex)
{
Context context("When " + destination_string + " for '" + stringify(id_spec) + "':");
@@ -553,9 +553,9 @@ namespace
const int x, const int y,
const int f, const int s,
const bool was_target,
- Mutex & job_mutex,
+ std::recursive_mutex & job_mutex,
JobActiveState & active_state,
- Mutex & executor_mutex)
+ std::mutex & executor_mutex)
{
Context context("When removing '" + stringify(id_spec) + "':");
@@ -780,7 +780,7 @@ namespace
struct ExecuteCounts
{
- Mutex mutex;
+ std::mutex mutex;
int x_fetches, y_fetches, f_fetches, s_fetches, x_installs, y_installs, f_installs, s_installs;
ExecuteCounts() :
@@ -797,19 +797,19 @@ namespace
void visit(const FetchJob &)
{
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++y_fetches;
}
void visit(const InstallJob &)
{
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++y_installs;
}
void visit(const UninstallJob &)
{
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++y_installs;
}
};
@@ -834,8 +834,8 @@ namespace
const ExecuteResolutionCommandLine & cmdline;
const int n_fetch_jobs;
ExecuteCounts & counts;
- Mutex & job_mutex;
- Mutex & executor_mutex;
+ std::recursive_mutex & job_mutex;
+ std::mutex & executor_mutex;
const ExecuteOneVisitorPart part;
int retcode;
@@ -844,8 +844,8 @@ namespace
const ExecuteResolutionCommandLine & c,
const int n,
ExecuteCounts & k,
- Mutex & m,
- Mutex & x,
+ std::recursive_mutex & m,
+ std::mutex & x,
ExecuteOneVisitorPart p,
int r) :
env(e),
@@ -901,7 +901,7 @@ namespace
{
const std::shared_ptr<JobActiveState> active_state(std::make_shared<JobActiveState>());
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
install_item.set_state(active_state);
}
@@ -909,7 +909,7 @@ namespace
counts.f_installs, counts.s_installs, false, install_item.was_target(),
job_mutex, *active_state, executor_mutex))
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
install_item.set_state(active_state->failed());
++counts.f_installs;
return 1;
@@ -920,13 +920,13 @@ namespace
counts.x_installs, counts.y_installs, counts.f_installs, counts.s_installs,
install_item.was_target(), job_mutex, *active_state, executor_mutex))
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
install_item.set_state(active_state->failed());
++counts.f_installs;
return 1;
}
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
install_item.set_state(active_state->succeeded());
}
break;
@@ -956,7 +956,7 @@ namespace
{
const std::shared_ptr<JobActiveState> active_state(std::make_shared<JobActiveState>());
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
uninstall_item.set_state(active_state);
}
@@ -967,13 +967,13 @@ namespace
counts.f_installs, counts.s_installs, uninstall_item.was_target(),
job_mutex, *active_state, executor_mutex))
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
uninstall_item.set_state(active_state->failed());
++counts.f_installs;
return 1;
}
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
uninstall_item.set_state(active_state->succeeded());
}
break;
@@ -1002,20 +1002,20 @@ namespace
{
const std::shared_ptr<JobActiveState> active_state(std::make_shared<JobActiveState>());
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
fetch_item.set_state(active_state);
}
if (! do_fetch(env, cmdline, n_fetch_jobs, fetch_item.origin_id_spec(), counts.x_fetches, counts.y_fetches,
counts.f_fetches, counts.s_fetches, true, fetch_item.was_target(), job_mutex, *active_state, executor_mutex))
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
fetch_item.set_state(active_state->failed());
++counts.f_fetches;
return 1;
}
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
fetch_item.set_state(active_state->succeeded());
}
break;
@@ -1257,7 +1257,7 @@ namespace
const std::shared_ptr<ExecuteJob> job;
const std::shared_ptr<JobLists> lists;
JobRequirementIf require_if;
- Mutex & global_retcode_mutex;
+ std::mutex & global_retcode_mutex;
int & global_retcode;
int local_retcode;
ExecuteCounts & counts;
@@ -1265,7 +1265,7 @@ namespace
Timestamp last_flushed, last_output;
- Mutex job_mutex;
+ std::recursive_mutex job_mutex;
bool want, already_done;
@@ -1277,7 +1277,7 @@ namespace
const std::shared_ptr<ExecuteJob> & j,
const std::shared_ptr<JobLists> & l,
JobRequirementIf r,
- Mutex & m,
+ std::mutex & m,
int & rc,
ExecuteCounts & k,
std::string & h) :
@@ -1364,7 +1364,7 @@ namespace
int current_global_retcode;
{
- Lock lock(global_retcode_mutex);
+ std::unique_lock<std::mutex> lock(global_retcode_mutex);
current_global_retcode = global_retcode;
}
@@ -1406,7 +1406,7 @@ namespace
}
else if (! already_done)
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
job->set_state(std::make_shared<JobSkippedState>());
}
}
@@ -1416,7 +1416,7 @@ namespace
if (n_fetch_jobs == 0)
return;
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
const std::shared_ptr<OutputManager> output_manager(
job->state()->accept_returning<std::shared_ptr<OutputManager> >(GetOutputManager()));
@@ -1463,7 +1463,7 @@ namespace
void flush_threaded()
{
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
const std::shared_ptr<OutputManager> output_manager(
job->state()->accept_returning<std::shared_ptr<OutputManager> >(GetOutputManager()));
@@ -1485,7 +1485,7 @@ namespace
ExecuteOneVisitor execute(env, cmdline, n_fetch_jobs, counts, job_mutex, executor.exclusivity_mutex(), x1_post, local_retcode);
local_retcode |= job->accept_returning<int>(execute);
- Lock lock(job_mutex);
+ std::unique_lock<std::recursive_mutex> lock(job_mutex);
const std::shared_ptr<OutputManager> output_manager(
job->state()->accept_returning<std::shared_ptr<OutputManager> >(GetOutputManager()));
@@ -1500,7 +1500,7 @@ namespace
}
{
- Lock lock(global_retcode_mutex);
+ std::unique_lock<std::mutex> lock(global_retcode_mutex);
global_retcode |= local_retcode;
}
@@ -1516,7 +1516,7 @@ namespace
const int n_fetch_jobs)
{
int retcode(0);
- Mutex retcode_mutex;
+ std::mutex retcode_mutex;
ExecuteCounts counts;
for (JobList<ExecuteJob>::ConstIterator c(lists->execute_job_list()->begin()),
diff --git a/src/clients/cave/cmd_generate_metadata.cc b/src/clients/cave/cmd_generate_metadata.cc
index 20551f46b..fde43b930 100644
--- a/src/clients/cave/cmd_generate_metadata.cc
+++ b/src/clients/cave/cmd_generate_metadata.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2011 Ciaran McCreesh
+ * Copyright (c) 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -31,7 +31,6 @@
#include <paludis/util/make_null_shared_ptr.hh>
#include <paludis/util/accept_visitor.hh>
#include <paludis/util/thread_pool.hh>
-#include <paludis/util/mutex.hh>
#include <paludis/util/stringify.hh>
#include <paludis/generator.hh>
#include <paludis/filtered_generator.hh>
@@ -48,6 +47,7 @@
#include <cstdlib>
#include <iostream>
#include <algorithm>
+#include <mutex>
#include <map>
#include <unistd.h>
@@ -111,7 +111,7 @@ namespace
struct DisplayCallback
{
- mutable Mutex mutex;
+ mutable std::mutex mutex;
mutable std::map<std::string, int> metadata;
mutable int steps;
int total;
@@ -202,7 +202,7 @@ namespace
if (! output)
return;
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++steps;
update();
}
@@ -212,7 +212,7 @@ namespace
if (! output)
return;
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++metadata.insert(std::make_pair(stringify(e.repository()), 0)).first->second;
update();
}
@@ -230,14 +230,14 @@ namespace
}
};
- void worker(Mutex & mutex, PackageIDSequence::ConstIterator & i, const PackageIDSequence::ConstIterator & i_end, bool & fail,
+ void worker(std::mutex & mutex, PackageIDSequence::ConstIterator & i, const PackageIDSequence::ConstIterator & i_end, bool & fail,
DisplayCallback & display_callback)
{
while (true)
{
std::shared_ptr<const PackageID> id;
{
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
if (i != i_end)
id = *i++;
}
@@ -257,7 +257,7 @@ namespace
}
catch (const Exception & e)
{
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
std::cerr << "When processing '" << **i << "' got exception '" << e.message() << "' (" << e.what() << ")" << std::endl;
fail = true;
break;
@@ -300,7 +300,7 @@ GenerateMetadataCommand::run(
const std::shared_ptr<const PackageIDSequence> ids((*env)[selection::AllVersionsSorted(g)]);
bool fail(false);
- Mutex mutex;
+ std::mutex mutex;
PackageIDSequence::ConstIterator i(ids->begin()), i_end(ids->end());
{
diff --git a/src/clients/cave/cmd_manage_search_index.cc b/src/clients/cave/cmd_manage_search_index.cc
index 48e0f23d0..bc61138b4 100644
--- a/src/clients/cave/cmd_manage_search_index.cc
+++ b/src/clients/cave/cmd_manage_search_index.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -47,7 +47,6 @@
#include <paludis/util/visitor_cast.hh>
#include <paludis/util/iterator_funcs.hh>
#include <paludis/util/accept_visitor.hh>
-#include <paludis/util/mutex.hh>
#include <paludis/util/stringify.hh>
#include <cstdlib>
@@ -55,6 +54,7 @@
#include <algorithm>
#include <list>
#include <map>
+#include <mutex>
#include <unistd.h>
#include "config.h"
@@ -74,7 +74,7 @@ namespace
struct DisplayCallback
{
- mutable Mutex mutex;
+ mutable std::mutex mutex;
mutable std::map<std::string, int> metadata;
mutable int steps;
int total;
@@ -165,7 +165,7 @@ namespace
if (! output)
return;
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++steps;
stage = s.stage;
update();
@@ -176,7 +176,7 @@ namespace
if (! output)
return;
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++metadata.insert(std::make_pair(stringify(e.repository()), 0)).first->second;
update();
}
diff --git a/src/clients/cave/cmd_resolve_display_callback.cc b/src/clients/cave/cmd_resolve_display_callback.cc
index 7dd3c8ad3..18359b1af 100644
--- a/src/clients/cave/cmd_resolve_display_callback.cc
+++ b/src/clients/cave/cmd_resolve_display_callback.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2009, 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -23,6 +23,7 @@
#include <paludis/util/pimp-impl.hh>
#include <paludis/util/fs_stat.hh>
#include <iostream>
+#include <mutex>
#include <map>
#include <unistd.h>
@@ -34,7 +35,7 @@ namespace paludis
template <>
struct Imp<DisplayCallback>
{
- mutable Mutex mutex;
+ mutable std::mutex mutex;
mutable std::map<std::string, int> metadata, steps;
mutable std::string stage;
mutable unsigned width;
@@ -79,7 +80,7 @@ DisplayCallback::operator() (const ResolverRestart &) const
if (! _imp->output)
return;
- Lock lock(_imp->mutex);
+ std::unique_lock<std::mutex> lock(_imp->mutex);
++_imp->steps.insert(std::make_pair("restarts", 0)).first->second;
update();
}
@@ -90,7 +91,7 @@ DisplayCallback::visit(const NotifierCallbackGeneratingMetadataEvent & e) const
if (! _imp->output)
return;
- Lock lock(_imp->mutex);
+ std::unique_lock<std::mutex> lock(_imp->mutex);
++_imp->metadata.insert(std::make_pair(stringify(e.repository()), 0)).first->second;
update();
}
@@ -101,7 +102,7 @@ DisplayCallback::visit(const NotifierCallbackResolverStageEvent & e) const
if (! _imp->output)
return;
- Lock lock(_imp->mutex);
+ std::unique_lock<std::mutex> lock(_imp->mutex);
_imp->stage = e.stage() + ": ";
update();
}
@@ -112,7 +113,7 @@ DisplayCallback::visit(const NotifierCallbackResolverStepEvent &) const
if (! _imp->output)
return;
- Lock lock(_imp->mutex);
+ std::unique_lock<std::mutex> lock(_imp->mutex);
++_imp->steps.insert(std::make_pair("steps", 0)).first->second;
update();
}
@@ -123,7 +124,7 @@ DisplayCallback::visit(const NotifierCallbackLinkageStepEvent & e) const
if (! _imp->output)
return;
- Lock lock(_imp->mutex);
+ std::unique_lock<std::mutex> lock(_imp->mutex);
if (e.location().stat().is_directory_or_symlink_to_directory())
++_imp->steps.insert(std::make_pair("directories", 0)).first->second;
else
diff --git a/src/clients/cave/cmd_resolve_display_callback.hh b/src/clients/cave/cmd_resolve_display_callback.hh
index 249c13d2b..c51165975 100644
--- a/src/clients/cave/cmd_resolve_display_callback.hh
+++ b/src/clients/cave/cmd_resolve_display_callback.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2009, 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -20,9 +20,8 @@
#ifndef PALUDIS_GUARD_SRC_CLIENTS_CAVE_CMD_RESOLVE_DISPLAY_CALLBACK_HH
#define PALUDIS_GUARD_SRC_CLIENTS_CAVE_CMD_RESOLVE_DISPLAY_CALLBACK_HH 1
-#include <paludis/util/mutex.hh>
-#include <paludis/util/pimp.hh>
#include <paludis/notifier_callback-fwd.hh>
+#include <paludis/util/pimp.hh>
#include <string>
namespace paludis
diff --git a/src/clients/cave/cmd_search.cc b/src/clients/cave/cmd_search.cc
index 6afbb408a..9b87f89a7 100644
--- a/src/clients/cave/cmd_search.cc
+++ b/src/clients/cave/cmd_search.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -45,7 +45,6 @@
#include <paludis/util/wrapped_forward_iterator.hh>
#include <paludis/util/indirect_iterator-impl.hh>
#include <paludis/util/wrapped_output_iterator.hh>
-#include <paludis/util/mutex.hh>
#include <paludis/util/iterator_funcs.hh>
#include <paludis/util/make_null_shared_ptr.hh>
#include <paludis/util/stringify.hh>
@@ -53,6 +52,7 @@
#include <cstdlib>
#include <iostream>
#include <algorithm>
+#include <mutex>
#include <set>
#include <map>
#include <unistd.h>
@@ -134,7 +134,7 @@ namespace
struct DisplayCallback
{
- mutable Mutex mutex;
+ mutable std::mutex mutex;
mutable std::map<std::string, int> metadata;
mutable int steps;
mutable std::string stage;
@@ -221,7 +221,7 @@ namespace
if (! output)
return;
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++steps;
stage = s.stage;
update();
@@ -232,7 +232,7 @@ namespace
if (! output)
return;
- Lock lock(mutex);
+ std::unique_lock<std::mutex> lock(mutex);
++metadata.insert(std::make_pair(stringify(e.repository()), 0)).first->second;
update();
}
diff --git a/src/clients/cave/cmd_sync.cc b/src/clients/cave/cmd_sync.cc
index e29bfe3bc..6045cae27 100644
--- a/src/clients/cave/cmd_sync.cc
+++ b/src/clients/cave/cmd_sync.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -21,10 +21,8 @@
#include "exceptions.hh"
#include "colours.hh"
#include "format_user_config.hh"
-#include <paludis/util/mutex.hh>
#include <paludis/util/named_value.hh>
#include <paludis/util/make_named_values.hh>
-#include <paludis/util/condition_variable.hh>
#include <paludis/util/return_literal_function.hh>
#include <paludis/util/executor.hh>
#include <paludis/util/timestamp.hh>
diff --git a/src/clients/cave/resolve_common.cc b/src/clients/cave/resolve_common.cc
index 5043f2c1e..b1877179a 100644
--- a/src/clients/cave/resolve_common.cc
+++ b/src/clients/cave/resolve_common.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009, 2010, 2011, 2012 Ciaran McCreesh
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -27,7 +27,6 @@
#include "command_command_line.hh"
#include "parse_spec_with_nice_error.hh"
-#include <paludis/util/mutex.hh>
#include <paludis/util/stringify.hh>
#include <paludis/util/make_named_values.hh>
#include <paludis/util/system.hh>