Skip to content

Commit 62e39b8

Browse files
committed
Change AVar signature to take value. Remove special error checking
1 parent 3c9a947 commit 62e39b8

File tree

1 file changed

+4
-19
lines changed

1 file changed

+4
-19
lines changed

src/Control/Monad/Eff/AVar.js

+4-19
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
"use strict";
55

66
var EMPTY = {};
7-
var NO_EFFECT = function () {};
87

98
function MutableQueue () {
109
this.head = null;
@@ -115,24 +114,22 @@ function deleteCell (cell) {
115114
cell.prev = null;
116115
}
117116

118-
function AVar () {
117+
function AVar (value) {
119118
this.draining = false;
120119
this.error = null;
121-
this.value = EMPTY;
120+
this.value = value;
122121
this.takes = new MutableQueue();
123122
this.reads = new MutableQueue();
124123
this.puts = new MutableQueue();
125124
}
126125

127126
exports.makeEmptyVar = function () {
128-
return new AVar();
127+
return new AVar(EMPTY);
129128
};
130129

131130
exports.makeVar = function (value) {
132131
return function () {
133-
var avar = new AVar();
134-
avar.value = value;
135-
return avar;
132+
return new AVar(value);
136133
};
137134
};
138135

@@ -148,10 +145,6 @@ exports._killVar = function (left, right, avar, error) {
148145

149146
exports._putVar = function (left, right, avar, value, cb) {
150147
return function () {
151-
if (avar.error !== null) {
152-
runEff(cb(left(avar.error)));
153-
return NO_EFFECT;
154-
}
155148
var cell = putLast(avar.puts, { cb: cb, value: value });
156149
drainVar(left, right, avar);
157150
return function () {
@@ -162,10 +155,6 @@ exports._putVar = function (left, right, avar, value, cb) {
162155

163156
exports._takeVar = function (left, right, avar, cb) {
164157
return function () {
165-
if (avar.error !== null) {
166-
runEff(cb(left(avar.error)));
167-
return NO_EFFECT;
168-
}
169158
var cell = putLast(avar.takes, cb);
170159
drainVar(left, right, avar);
171160
return function () {
@@ -176,10 +165,6 @@ exports._takeVar = function (left, right, avar, cb) {
176165

177166
exports._readVar = function (left, right, avar, cb) {
178167
return function () {
179-
if (avar.error !== null) {
180-
runEff(cb(left(avar.error)));
181-
return NO_EFFECT;
182-
}
183168
var cell = putLast(avar.reads, cb);
184169
drainVar(left, right, avar);
185170
return function () {

0 commit comments

Comments
 (0)