{"id":135,"date":"2006-08-24T14:14:35","date_gmt":"2006-08-24T19:14:35","guid":{"rendered":"http:\/\/bitpost.com\/news\/2006\/08\/24\/shorten-your-c-mfc-multithreading-learning-curve\/"},"modified":"2006-12-01T16:30:18","modified_gmt":"2006-12-01T21:30:18","slug":"shorten-your-c-mfc-multithreading-learning-curve","status":"publish","type":"post","link":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/","title":{"rendered":"Shorten your multithreading learning curve"},"content":{"rendered":"<p>Read <a href=\"http:\/\/www.flounder.com\/badprogram.htm\">this guy&#8217;s notes<\/a>.  Seriously.  Working out my own threading issues for STDJ&#8217;s purposes, I either came to the same conclusions, or should have.  Even though it&#8217;s &#8220;old skool MFC&#8221;, it has great advice that can be abstracted and applied to any multithreaded environment.  I&#8217;m keeping a <a href=\"http:\/\/bitpost.com\/news\/the-n-habits-of-highly-defective-windows-applications\/\">backup<\/a> of that page.<\/p>\n<p>My initial troubles came from trying to decipher the MSDN docs on how to start\/end a thread.  There are at least FOUR #*&#038;@% different ways to do it, and the docs are so bad they will make you go blind if you read them all.  After digging for a while, the guy at flounder.com has it right when he says only one is correct.  A quick peek at the Shareaza code base shows that they agree.  Upwards and onwards with AfxBeginThread()!<\/p>\n<p>Other issues that he helped me with were using the volatile keyword on shared (and properly locked) variables, and using ::PostMessage, not ::SendMessage, from thread to thread (I should have figured that one out, sigh&#8230;).<\/p>\n<p>If I get enough time I am hopeful about switching to <a href=\"http:\/\/www.boost.org\/doc\/html\/threads.html\">boost&#8217;s thread library<\/a> in the future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Read this guy&#8217;s notes. Seriously. Working out my own threading issues for STDJ&#8217;s purposes, I either came to the same conclusions, or should have. Even though it&#8217;s &#8220;old skool MFC&#8221;, it has great advice that can be abstracted and applied to any multithreaded environment. I&#8217;m keeping a backup of that page. My initial troubles came [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[7,4,8,10,6],"tags":[],"class_list":["post-135","post","type-post","status-publish","format-standard","hentry","category-hangthedj","category-projects","category-sharethedj","category-tricks-tips-tools","category-windows-projects"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Read this guy&#039;s notes. Seriously. Working out my own threading issues for STDJ&#039;s purposes, I either came to the same conclusions, or should have. Even though it&#039;s &quot;old skool MFC&quot;, it has great advice that can be abstracted and applied to any multithreaded environment. I&#039;m keeping a backup of that page. My initial troubles came\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"m\"\/>\n\t<meta name=\"keywords\" content=\"hangthedj,projects,sharethedj,tricks tips tools,windows\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"bitpost.com\/news | Note to self\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Shorten your multithreading learning curve | bitpost.com\/news\" \/>\n\t\t<meta property=\"og:description\" content=\"Read this guy&#039;s notes. Seriously. Working out my own threading issues for STDJ&#039;s purposes, I either came to the same conclusions, or should have. Even though it&#039;s &quot;old skool MFC&quot;, it has great advice that can be abstracted and applied to any multithreaded environment. I&#039;m keeping a backup of that page. My initial troubles came\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2006-08-24T19:14:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2006-12-01T21:30:18+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Shorten your multithreading learning curve | bitpost.com\/news\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Read this guy&#039;s notes. Seriously. Working out my own threading issues for STDJ&#039;s purposes, I either came to the same conclusions, or should have. Even though it&#039;s &quot;old skool MFC&quot;, it has great advice that can be abstracted and applied to any multithreaded environment. I&#039;m keeping a backup of that page. My initial troubles came\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#article\",\"name\":\"Shorten your multithreading learning curve | bitpost.com\\\/news\",\"headline\":\"Shorten your multithreading learning curve\",\"author\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"},\"datePublished\":\"2006-08-24T14:14:35-04:00\",\"dateModified\":\"2006-12-01T16:30:18-05:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#webpage\"},\"articleSection\":\"HangTheDJ, Projects, ShareTheDJ, Tricks Tips Tools, Windows\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"position\":2,\"name\":\"Projects\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/#listItem\",\"name\":\"Linux Projects\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/#listItem\",\"position\":3,\"name\":\"Linux Projects\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/sharethedj\\\/#listItem\",\"name\":\"ShareTheDJ\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/sharethedj\\\/#listItem\",\"position\":4,\"name\":\"ShareTheDJ\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/sharethedj\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#listItem\",\"name\":\"Shorten your multithreading learning curve\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/#listItem\",\"name\":\"Linux Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#listItem\",\"position\":5,\"name\":\"Shorten your multithreading learning curve\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/linux-projects\\\/sharethedj\\\/#listItem\",\"name\":\"ShareTheDJ\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\",\"name\":\"m\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/\",\"name\":\"m\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#webpage\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/\",\"name\":\"Shorten your multithreading learning curve | bitpost.com\\\/news\",\"description\":\"Read this guy's notes. Seriously. Working out my own threading issues for STDJ's purposes, I either came to the same conclusions, or should have. Even though it's \\\"old skool MFC\\\", it has great advice that can be abstracted and applied to any multithreaded environment. I'm keeping a backup of that page. My initial troubles came\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2006\\\/shorten-your-c-mfc-multithreading-learning-curve\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"datePublished\":\"2006-08-24T14:14:35-04:00\",\"dateModified\":\"2006-12-01T16:30:18-05:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#website\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/\",\"name\":\"bitpost.com\\\/news\",\"description\":\"Note to self\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Shorten your multithreading learning curve | bitpost.com\/news","description":"Read this guy's notes. Seriously. Working out my own threading issues for STDJ's purposes, I either came to the same conclusions, or should have. Even though it's \"old skool MFC\", it has great advice that can be abstracted and applied to any multithreaded environment. I'm keeping a backup of that page. My initial troubles came","canonical_url":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/","robots":"max-image-preview:large","keywords":"hangthedj,projects,sharethedj,tricks tips tools,windows","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#article","name":"Shorten your multithreading learning curve | bitpost.com\/news","headline":"Shorten your multithreading learning curve","author":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"publisher":{"@id":"https:\/\/bitpost.com\/news\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"},"datePublished":"2006-08-24T14:14:35-04:00","dateModified":"2006-12-01T16:30:18-05:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#webpage"},"isPartOf":{"@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#webpage"},"articleSection":"HangTheDJ, Projects, ShareTheDJ, Tricks Tips Tools, Windows"},{"@type":"BreadcrumbList","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news#listItem","position":1,"name":"Home","item":"https:\/\/bitpost.com\/news","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","position":2,"name":"Projects","item":"https:\/\/bitpost.com\/news\/category\/projects\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/#listItem","name":"Linux Projects"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/#listItem","position":3,"name":"Linux Projects","item":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/sharethedj\/#listItem","name":"ShareTheDJ"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/sharethedj\/#listItem","position":4,"name":"ShareTheDJ","item":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/sharethedj\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#listItem","name":"Shorten your multithreading learning curve"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/#listItem","name":"Linux Projects"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#listItem","position":5,"name":"Shorten your multithreading learning curve","previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/linux-projects\/sharethedj\/#listItem","name":"ShareTheDJ"}}]},{"@type":"Person","@id":"https:\/\/bitpost.com\/news\/#person","name":"m","image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"}},{"@type":"Person","@id":"https:\/\/bitpost.com\/news\/author\/m\/#author","url":"https:\/\/bitpost.com\/news\/author\/m\/","name":"m","image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"}},{"@type":"WebPage","@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#webpage","url":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/","name":"Shorten your multithreading learning curve | bitpost.com\/news","description":"Read this guy's notes. Seriously. Working out my own threading issues for STDJ's purposes, I either came to the same conclusions, or should have. Even though it's \"old skool MFC\", it has great advice that can be abstracted and applied to any multithreaded environment. I'm keeping a backup of that page. My initial troubles came","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/bitpost.com\/news\/#website"},"breadcrumb":{"@id":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/#breadcrumblist"},"author":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"creator":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"datePublished":"2006-08-24T14:14:35-04:00","dateModified":"2006-12-01T16:30:18-05:00"},{"@type":"WebSite","@id":"https:\/\/bitpost.com\/news\/#website","url":"https:\/\/bitpost.com\/news\/","name":"bitpost.com\/news","description":"Note to self","inLanguage":"en-US","publisher":{"@id":"https:\/\/bitpost.com\/news\/#person"}}]},"og:locale":"en_US","og:site_name":"bitpost.com\/news | Note to self","og:type":"article","og:title":"Shorten your multithreading learning curve | bitpost.com\/news","og:description":"Read this guy's notes. Seriously. Working out my own threading issues for STDJ's purposes, I either came to the same conclusions, or should have. Even though it's &quot;old skool MFC&quot;, it has great advice that can be abstracted and applied to any multithreaded environment. I'm keeping a backup of that page. My initial troubles came","og:url":"https:\/\/bitpost.com\/news\/2006\/shorten-your-c-mfc-multithreading-learning-curve\/","article:published_time":"2006-08-24T19:14:35+00:00","article:modified_time":"2006-12-01T21:30:18+00:00","twitter:card":"summary","twitter:title":"Shorten your multithreading learning curve | bitpost.com\/news","twitter:description":"Read this guy's notes. Seriously. Working out my own threading issues for STDJ's purposes, I either came to the same conclusions, or should have. Even though it's &quot;old skool MFC&quot;, it has great advice that can be abstracted and applied to any multithreaded environment. I'm keeping a backup of that page. My initial troubles came"},"aioseo_meta_data":{"post_id":"135","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-13 19:53:05","updated":"2025-08-17 18:51:55","seo_analyzer_scan_date":null},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9M11L-2b","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/comments?post=135"}],"version-history":[{"count":0,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/135\/revisions"}],"wp:attachment":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/media?parent=135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/categories?post=135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/tags?post=135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}