đŸ•ˇī¸ Crawler Inspector

URL Lookup

Direct Parameter Lookup

Raw Queries and Responses

1. Shard Calculation

Query:
Response:
Calculated Shard: 76 (from laksa169)

2. Crawled Status Check

Query:
Response:

3. Robots.txt Check

Query:
Response:

4. Spam/Ban Check

Query:
Response:

5. Seen Status Check

â„šī¸ Skipped - page is already crawled

đŸšĢ
NOT INDEXABLE
✅
CRAWLED
2 months ago
🤖
ROBOTS ALLOWED

Page Info Filters

FilterStatusConditionDetails
HTTP statusPASSdownload_http_code = 200HTTP 200
Age cutoffPASSdownload_stamp > now() - 6 MONTH2.9 months ago
History dropPASSisNull(history_drop_reason)No drop reason
Spam/banPASSfh_dont_index != 1 AND ml_spam_score = 0ml_spam_score=0
CanonicalFAILmeta_canonical IS NULL OR = '' OR = src_unparsedorg,boost!www,/doc/libs/latest/doc/html/lockfree/examples.html s443

Page Details

PropertyValue
URLhttps://www.boost.org/doc/libs/1_65_0/doc/html/lockfree/examples.html
Last Crawled2026-01-09 15:09:38 (2 months ago)
First Indexed2018-05-01 11:34:52 (7 years ago)
HTTP Status Code200
Meta TitleExamples
Meta Descriptionnull
Meta Canonicalorg,boost!www,/doc/libs/latest/doc/html/lockfree/examples.html s443
Boilerpipe Text
Queue The boost::lockfree::queue class implements a multi-writer/multi-reader queue. The following example shows how integer values are produced and consumed by 4 threads each: #include < boost / thread / thread . hpp > #include < boost / lockfree / queue . hpp > #include < iostream > #include < boost / atomic . hpp > boost :: atomic_int producer_count ( 0 ); boost :: atomic_int consumer_count ( 0 ); boost :: lockfree :: queue < int > queue ( 128 ); const int iterations = 10000000 ; const int producer_thread_count = 4 ; const int consumer_thread_count = 4 ; void producer ( void ) { for ( int i = 0 ; i != iterations ; ++ i ) { int value = ++ producer_count ; while (! queue . push ( value )) ; } } boost :: atomic < bool > done ( false ); void consumer ( void ) { int value ; while (! done ) { while ( queue . pop ( value )) ++ consumer_count ; } while ( queue . pop ( value )) ++ consumer_count ; } int main ( int argc , char * argv []) { using namespace std ; cout << "boost::lockfree::queue is " ; if (! queue . is_lock_free ()) cout << "not " ; cout << "lockfree" << endl ; boost :: thread_group producer_threads , consumer_threads ; for ( int i = 0 ; i != producer_thread_count ; ++ i ) producer_threads . create_thread ( producer ); for ( int i = 0 ; i != consumer_thread_count ; ++ i ) consumer_threads . create_thread ( consumer ); producer_threads . join_all (); done = true ; consumer_threads . join_all (); cout << "produced " << producer_count << " objects." << endl ; cout << "consumed " << consumer_count << " objects." << endl ; } The program output is: produced 40000000 objects. consumed 40000000 objects. Stack The boost::lockfree::stack class implements a multi-writer/multi-reader stack. The following example shows how integer values are produced and consumed by 4 threads each: #include < boost / thread / thread . hpp > #include < boost / lockfree / stack . hpp > #include < iostream > #include < boost / atomic . hpp > boost :: atomic_int producer_count ( 0 ); boost :: atomic_int consumer_count ( 0 ); boost :: lockfree :: stack < int > stack ( 128 ); const int iterations = 1000000 ; const int producer_thread_count = 4 ; const int consumer_thread_count = 4 ; void producer ( void ) { for ( int i = 0 ; i != iterations ; ++ i ) { int value = ++ producer_count ; while (! stack . push ( value )) ; } } boost :: atomic < bool > done ( false ); void consumer ( void ) { int value ; while (! done ) { while ( stack . pop ( value )) ++ consumer_count ; } while ( stack . pop ( value )) ++ consumer_count ; } int main ( int argc , char * argv []) { using namespace std ; cout << "boost::lockfree::stack is " ; if (! stack . is_lock_free ()) cout << "not " ; cout << "lockfree" << endl ; boost :: thread_group producer_threads , consumer_threads ; for ( int i = 0 ; i != producer_thread_count ; ++ i ) producer_threads . create_thread ( producer ); for ( int i = 0 ; i != consumer_thread_count ; ++ i ) consumer_threads . create_thread ( consumer ); producer_threads . join_all (); done = true ; consumer_threads . join_all (); cout << "produced " << producer_count << " objects." << endl ; cout << "consumed " << consumer_count << " objects." << endl ; } The program output is: produced 4000000 objects. consumed 4000000 objects. Waitfree Single-Producer/Single-Consumer Queue The boost::lockfree::spsc_queue class implements a wait-free single-producer/single-consumer queue. The following example shows how integer values are produced and consumed by 2 separate threads: #include < boost / thread / thread . hpp > #include < boost / lockfree / spsc_queue . hpp > #include < iostream > #include < boost / atomic . hpp > int producer_count = 0 ; boost :: atomic_int consumer_count ( 0 ); boost :: lockfree :: spsc_queue < int , boost :: lockfree :: capacity < 1024 > > spsc_queue ; const int iterations = 10000000 ; void producer ( void ) { for ( int i = 0 ; i != iterations ; ++ i ) { int value = ++ producer_count ; while (! spsc_queue . push ( value )) ; } } boost :: atomic < bool > done ( false ); void consumer ( void ) { int value ; while (! done ) { while ( spsc_queue . pop ( value )) ++ consumer_count ; } while ( spsc_queue . pop ( value )) ++ consumer_count ; } int main ( int argc , char * argv []) { using namespace std ; cout << "boost::lockfree::queue is " ; if (! spsc_queue . is_lock_free ()) cout << "not " ; cout << "lockfree" << endl ; boost :: thread producer_thread ( producer ); boost :: thread consumer_thread ( consumer ); producer_thread . join (); done = true ; consumer_thread . join (); cout << "produced " << producer_count << " objects." << endl ; cout << "consumed " << consumer_count << " objects." << endl ; } The program output is: produced 10000000 objects. consumed 10000000 objects.
Markdown
# [![Boost C++ Libraries](https://www.boost.org/static/img/original_docs/space.png) Boost C++ Libraries](https://www.boost.org/) "...one of the most highly regarded and expertly designed C++ library projects in the world." — [Herb Sutter](https://herbsutter.com/) and [Andrei Alexandrescu](http://en.wikipedia.org/wiki/Andrei_Alexandrescu), [C++ Coding Standards](https://books.google.com/books/about/C++_Coding_Standards.html?id=mmjVIC6WolgC) Search... This is an older version of Boost and was released in 2017. The [current version](https://www.boost.org/doc/libs/latest/doc/html/lockfree/examples.html) is 1.90.0. [![Prev](https://www.boost.org/doc/libs/1_65_0/doc/src/images/prev.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree.html)[![Up](https://www.boost.org/doc/libs/1_65_0/doc/src/images/up.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree.html)[![Home](https://www.boost.org/doc/libs/1_65_0/doc/src/images/home.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/index.html)[![Next](https://www.boost.org/doc/libs/1_65_0/doc/src/images/next.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree/rationale.html) ## [Examples](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree/examples.html "Examples") ### [Queue](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree/examples.html#lockfree.examples.queue) The `boost::lockfree::queue` class implements a multi-writer/multi-reader queue. The following example shows how integer values are produced and consumed by 4 threads each: ``` #include <boost/thread/thread.hpp> #include <boost/lockfree/queue.hpp> #include <iostream> #include <boost/atomic.hpp> boost::atomic_int producer_count(0); boost::atomic_int consumer_count(0); boost::lockfree::queue<int> queue(128); const int iterations = 10000000; const int producer_thread_count = 4; const int consumer_thread_count = 4; void producer(void) { for (int i = 0; i != iterations; ++i) { int value = ++producer_count; while (!queue.push(value)) ; } } boost::atomic<bool> done (false); void consumer(void) { int value; while (!done) { while (queue.pop(value)) ++consumer_count; } while (queue.pop(value)) ++consumer_count; } int main(int argc, char* argv[]) { using namespace std; cout << "boost::lockfree::queue is "; if (!queue.is_lock_free()) cout << "not "; cout << "lockfree" << endl; boost::thread_group producer_threads, consumer_threads; for (int i = 0; i != producer_thread_count; ++i) producer_threads.create_thread(producer); for (int i = 0; i != consumer_thread_count; ++i) consumer_threads.create_thread(consumer); producer_threads.join_all(); done = true; consumer_threads.join_all(); cout << "produced " << producer_count << " objects." << endl; cout << "consumed " << consumer_count << " objects." << endl; } ``` The program output is: ``` produced 40000000 objects. consumed 40000000 objects. ``` ### [Stack](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree/examples.html#lockfree.examples.stack) The `boost::lockfree::stack` class implements a multi-writer/multi-reader stack. The following example shows how integer values are produced and consumed by 4 threads each: ``` #include <boost/thread/thread.hpp> #include <boost/lockfree/stack.hpp> #include <iostream> #include <boost/atomic.hpp> boost::atomic_int producer_count(0); boost::atomic_int consumer_count(0); boost::lockfree::stack<int> stack(128); const int iterations = 1000000; const int producer_thread_count = 4; const int consumer_thread_count = 4; void producer(void) { for (int i = 0; i != iterations; ++i) { int value = ++producer_count; while (!stack.push(value)) ; } } boost::atomic<bool> done (false); void consumer(void) { int value; while (!done) { while (stack.pop(value)) ++consumer_count; } while (stack.pop(value)) ++consumer_count; } int main(int argc, char* argv[]) { using namespace std; cout << "boost::lockfree::stack is "; if (!stack.is_lock_free()) cout << "not "; cout << "lockfree" << endl; boost::thread_group producer_threads, consumer_threads; for (int i = 0; i != producer_thread_count; ++i) producer_threads.create_thread(producer); for (int i = 0; i != consumer_thread_count; ++i) consumer_threads.create_thread(consumer); producer_threads.join_all(); done = true; consumer_threads.join_all(); cout << "produced " << producer_count << " objects." << endl; cout << "consumed " << consumer_count << " objects." << endl; } ``` The program output is: ``` produced 4000000 objects. consumed 4000000 objects. ``` ### [Waitfree Single-Producer/Single-Consumer Queue](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree/examples.html#lockfree.examples.waitfree_single_producer_single_consumer_queue) The `boost::lockfree::spsc_queue` class implements a wait-free single-producer/single-consumer queue. The following example shows how integer values are produced and consumed by 2 separate threads: ``` #include <boost/thread/thread.hpp> #include <boost/lockfree/spsc_queue.hpp> #include <iostream> #include <boost/atomic.hpp> int producer_count = 0; boost::atomic_int consumer_count (0); boost::lockfree::spsc_queue<int, boost::lockfree::capacity<1024> > spsc_queue; const int iterations = 10000000; void producer(void) { for (int i = 0; i != iterations; ++i) { int value = ++producer_count; while (!spsc_queue.push(value)) ; } } boost::atomic<bool> done (false); void consumer(void) { int value; while (!done) { while (spsc_queue.pop(value)) ++consumer_count; } while (spsc_queue.pop(value)) ++consumer_count; } int main(int argc, char* argv[]) { using namespace std; cout << "boost::lockfree::queue is "; if (!spsc_queue.is_lock_free()) cout << "not "; cout << "lockfree" << endl; boost::thread producer_thread(producer); boost::thread consumer_thread(consumer); producer_thread.join(); done = true; consumer_thread.join(); cout << "produced " << producer_count << " objects." << endl; cout << "consumed " << consumer_count << " objects." << endl; } ``` The program output is: ``` produced 10000000 objects. consumed 10000000 objects. ``` | | | |---|---| | | Copyright © 2008-2011 Tim Blechmann Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE\_1\_0.txt or copy at <http://www.boost.org/LICENSE_1_0.txt>) | *** [![Prev](https://www.boost.org/doc/libs/1_65_0/doc/src/images/prev.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree.html)[![Up](https://www.boost.org/doc/libs/1_65_0/doc/src/images/up.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree.html)[![Home](https://www.boost.org/doc/libs/1_65_0/doc/src/images/home.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/index.html)[![Next](https://www.boost.org/doc/libs/1_65_0/doc/src/images/next.png)](https://www.boost.org/doc/libs/1_65_0/doc/html/lockfree/rationale.html)
Readable Markdownnull
Shard76 (laksa)
Root Hash2177253573749532476
Unparsed URLorg,boost!www,/doc/libs/1_65_0/doc/html/lockfree/examples.html s443