Muss ich den mongocxx :: pool manuell sperren, während ich eine Verbindung erhalte?MongoDB C++: Ist mongocxx :: pool thread sicher?
d. H. Ist das sicher? (Beispiel von Mongo Webseite kopiert)
mongocxx::instance instance{};
mongocxx::pool pool {mongocxx::uri{}};
using mongocxx::pool::entry = std::unique_ptr<client, std::function<void (client*)>>
auto threadfunc = [](mongocxx::client &client, stdx::string_view dbname) {
client[dbname]["col"].insert({});
}
// don't even bother sharing clients. Just give each thread its own,
std::thread([]() {
// pool.acquire() returns a mongo::pool::entry type
mongocxx::client *c= pool.acquire().get();
threadfunc(*c, "db1");
threadfunc(*c, "db2");
});
std::thread([]() {
mongocxx::client *c = pool.acquire().get();;
threadfunc(*c, "db2");
threadfunc(*c, "db1");
});
@xcorat es ist höflich, die besten Antworten auf Fragen, die Sie gestellt haben, zu verbessern und/oder zu akzeptieren. – acm
meine Güte! Ich lese gerade die Antwort: p (jk, aber ja, ich lese es gerade, danke :) – xcorat
Und ja, ich habe meinen Code geändert, um genau zu bestimmen, wie Sie es repariert haben, und dachte, ich habe die Frage bearbeitet, aber ich denke, ich hatte es nicht t. Danke noch einmal! – xcorat