Index: src/libcfa/concurrency/monitor
===================================================================
--- src/libcfa/concurrency/monitor	(revision e4ba18e4034ceb27ba0a576300d4831719e79f8b)
+++ src/libcfa/concurrency/monitor	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
@@ -81,4 +81,8 @@
 }
 
+static inline void ^?{}( condition * this ) {
+	free( this->monitors );
+}
+
 void wait( condition * this );
 void signal( condition * this );
Index: tools/vscode/uwaterloo.cforall-0.1.0/cforall.configuration.json
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/cforall.configuration.json	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
+++ tools/vscode/uwaterloo.cforall-0.1.0/cforall.configuration.json	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
@@ -0,0 +1,29 @@
+{
+	"comments": {
+		"lineComment": "//",
+		"blockComment": [ "/*", "*/" ]
+	},
+	// symbols used as brackets
+	"brackets": [
+		["{", "}"],
+		["[", "]"],
+		["(", ")"]
+	],
+	// symbols that are auto closed when typing
+	"autoClosingPairs": [
+		["{", "}"],
+		["[", "]"],
+		["(", ")"],
+		["\"", "\""],
+		["'", "'"]
+	],
+	// symbols that that can be used to surround a selection
+	"surroundingPairs": [
+		["{", "}"],
+		["[", "]"],
+		["(", ")"],
+		["\"", "\""],
+		["'", "'"],
+		["$", "$"]
+	]
+}
Index: tools/vscode/uwaterloo.cforall-0.1.0/images/icon.svg
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/images/icon.svg	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
+++ tools/vscode/uwaterloo.cforall-0.1.0/images/icon.svg	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.2" width="25mm" height="25mm" viewBox="0 0 2500 2500" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs class="ClipPathGroup">
+  <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
+   <rect x="0" y="0" width="2500" height="2500"/>
+  </clipPath>
+ </defs>
+ <defs class="TextShapeIndex">
+  <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6"/>
+ </defs>
+ <defs class="EmbeddedBulletChars">
+  <g id="bullet-char-template(57356)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
+  </g>
+  <g id="bullet-char-template(57354)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
+  </g>
+  <g id="bullet-char-template(10146)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
+  </g>
+  <g id="bullet-char-template(10132)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
+  </g>
+  <g id="bullet-char-template(10007)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
+  </g>
+  <g id="bullet-char-template(10004)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
+  </g>
+  <g id="bullet-char-template(9679)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
+  </g>
+  <g id="bullet-char-template(8226)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
+  </g>
+  <g id="bullet-char-template(8211)" transform="scale(0.00048828125,-0.00048828125)">
+   <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
+  </g>
+ </defs>
+ <defs class="TextEmbeddedBitmaps"/>
+ <g>
+  <g id="id2" class="Master_Slide">
+   <g id="bg-id2" class="Background"/>
+   <g id="bo-id2" class="BackgroundObjects"/>
+  </g>
+ </g>
+ <g class="SlideGroup">
+  <g>
+   <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
+    <g class="Page">
+     <g class="com.sun.star.drawing.ClosedBezierShape">
+      <g id="id3">
+       <rect class="BoundingBox" stroke="none" fill="none" x="256" y="501" width="919" height="1289"/>
+       <path fill="rgb(152,76,147)" stroke="none" d="M 1173,1722 L 1173,1722 C 1072,1768 978,1788 867,1788 856,1788 848,1788 837,1787 L 837,1787 C 827,1788 818,1788 808,1788 707,1788 621,1765 534,1715 487,1688 450,1659 412,1619 L 412,1619 C 384,1587 363,1558 341,1521 283,1419 256,1320 256,1203 256,1192 256,1182 257,1171 L 257,1171 C 256,1161 256,1152 256,1142 256,1017 285,910 347,802 372,759 397,724 431,687 L 431,687 C 473,643 514,611 566,580 661,526 753,501 862,501 869,501 875,502 883,502 L 883,502 C 890,502 897,502 904,502 1001,502 1082,516 1173,548 L 1173,817 1173,817 C 1168,814 1163,812 1158,808 1080,763 1003,743 912,743 909,743 907,743 904,743 899,743 895,743 891,743 827,743 773,757 718,789 686,807 662,826 637,853 619,874 606,893 592,917 553,984 535,1050 535,1128 535,1136 535,1143 535,1151 L 535,1151 C 535,1159 535,1165 535,1173 535,1249 552,1314 591,1381 603,1402 615,1419 631,1439 L 631,1439 C 655,1465 679,1484 710,1502 763,1532 814,1546 875,1546 880,1546 884,1546 889,1546 L 889,1546 C 891,1546 892,1546 894,1546 991,1546 1073,1524 1157,1475 1163,1472 1168,1469 1173,1466 L 1173,1722 Z"/>
+      </g>
+     </g>
+     <g class="com.sun.star.drawing.CustomShape">
+      <g id="id4">
+       <rect class="BoundingBox" stroke="none" fill="none" x="1281" y="520" width="540" height="1282"/>
+       <path fill="rgb(152,76,147)" stroke="none" d="M 1576,1800 L 1819,1800 1524,521 1282,521 1576,1800 Z M 1282,1800 L 1282,1800 Z M 1819,521 L 1819,521 Z"/>
+       <path fill="none" stroke="rgb(152,76,147)" d="M 1576,1800 L 1819,1800 1524,521 1282,521 1576,1800 Z"/>
+       <path fill="none" stroke="rgb(152,76,147)" d="M 1282,1800 L 1282,1800 Z"/>
+       <path fill="none" stroke="rgb(152,76,147)" d="M 1819,521 L 1819,521 Z"/>
+      </g>
+     </g>
+     <g class="com.sun.star.drawing.CustomShape">
+      <g id="id5">
+       <rect class="BoundingBox" stroke="none" fill="none" x="1489" y="838" width="527" height="167"/>
+       <path fill="rgb(152,76,147)" stroke="none" d="M 1752,1003 L 1490,1003 1490,839 2014,839 2014,1003 1752,1003 Z"/>
+       <path fill="none" stroke="rgb(152,76,147)" d="M 1752,1003 L 1490,1003 1490,839 2014,839 2014,1003 1752,1003 Z"/>
+      </g>
+     </g>
+     <g class="com.sun.star.drawing.CustomShape">
+      <g id="id6">
+       <rect class="BoundingBox" stroke="none" fill="none" x="1663" y="521" width="540" height="1282"/>
+       <path fill="rgb(152,76,147)" stroke="none" d="M 1958,522 L 2201,522 1906,1801 1664,1801 1958,522 Z M 1664,522 L 1664,522 Z M 2201,1801 L 2201,1801 Z"/>
+       <path fill="none" stroke="rgb(152,76,147)" d="M 1958,522 L 2201,522 1906,1801 1664,1801 1958,522 Z"/>
+       <path fill="none" stroke="rgb(152,76,147)" d="M 1664,522 L 1664,522 Z"/>
+       <path fill="none" stroke="rgb(152,76,147)" d="M 2201,1801 L 2201,1801 Z"/>
+      </g>
+     </g>
+    </g>
+   </g>
+  </g>
+ </g>
+</svg>
Index: tools/vscode/uwaterloo.cforall-0.1.0/package.json
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/package.json	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
+++ tools/vscode/uwaterloo.cforall-0.1.0/package.json	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
@@ -0,0 +1,41 @@
+{
+	"name": "cforall",
+	"version": "0.1.0",
+	"displayName": "Cforall Language Support",
+	"description": "Cforall - colorizer, grammar and snippets.",
+	"publisher": "uwaterloo",
+	"license": "MIT",
+	"engines": {
+		"vscode": "^1.5.0"
+	},
+	"icon": "images/icon.svg",
+	"categories": [
+		"Languages",
+		"Linters",
+		"Other"
+	],
+	"contributes": {
+		"languages": [
+			{
+				"id": "cforall",
+				"aliases": [
+					"C∀",
+					"Cforall",
+					"CForAll",
+					"cforall"
+				],
+				"extensions": [
+					".cf"
+				],
+				"configuration": "./cforall.configuration.json"
+			}
+		],
+		"grammars": [
+			{
+				"language": "cforall",
+				"scopeName": "source.cf",
+				"path": "./syntaxes/cfa.tmLanguage"
+			}
+		]
+	}
+}
Index: tools/vscode/uwaterloo.cforall-0.1.0/snippets/snippets.json
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/snippets/snippets.json	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
+++ tools/vscode/uwaterloo.cforall-0.1.0/snippets/snippets.json	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
@@ -0,0 +1,3 @@
+{
+	
+}
Index: tools/vscode/uwaterloo.cforall-0.1.0/syntaxes/cfa.tmLanguage
===================================================================
--- tools/vscode/uwaterloo.cforall-0.1.0/syntaxes/cfa.tmLanguage	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
+++ tools/vscode/uwaterloo.cforall-0.1.0/syntaxes/cfa.tmLanguage	(revision c469f4325c8d83a5b0d488de189204d4121c3cc7)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>fileTypes</key>
+	<array>
+		<string>c</string>
+		<string>cf</string>
+		<string>cfa</string>
+		<string>h</string>
+	</array>
+	<key>foldingStartMarker</key>
+	<string>/\*\*|\{\s*$</string>
+	<key>foldingStopMarker</key>
+	<string>\*\*/|^\s*\}</string>
+	<key>keyEquivalent</key>
+	<string>^~G</string>
+	<key>name</key>
+	<string>Cforall</string>
+	<key>patterns</key>
+	<array>
+		<dict>
+			<key>match</key>
+			<string>\b(forall)\b</string>
+			<key>name</key>
+			<string>keyword.control.cfa</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>\b(trait|dtype|otype|ftype|sized|volatile|extern|static|inline|coroutine|thread|thread_local|mutex|monitor)\b</string>
+			<key>name</key>
+			<string>storage.type.cfa</string>
+		</dict>
+		<dict>
+			<key>match</key>
+			<string>\b(this)\b</string>
+			<key>name</key>
+			<string>variable.language.cfa</string>
+		</dict>
+		<dict>
+			<key>include</key>
+			<string>source.c</string>
+		</dict>
+	</array>
+	<key>scopeName</key>
+	<string>source.cf</string>
+	<key>uuid</key>
+	<string>25066DC2-6B1D-11D9-9D5B-000D93589AF6</string>
+</dict>
+</plist>
