David Greenspan dcd26415fe Allow timer callbacks to participate in WriteFences.
This is a carefully considered change motivated by Tinytest, which
fires timers from a method and then waits for them before returning.
Because the timer callbacks didn't have a WriteFence, we had a race
condition a while back where the test client would quiesce before all
the results came in, which I fixed by giving Tinytest its own timer
functions that kept the environment, including the WriteFence.
I want to tear these special timer functions out now, since they are
necessary (before this commit) for very obscure reasons.  The race
condition is hard to reproduce and is affected by Mongo latency, the
order of the unit tests, etc.  (I reproduced it semi-stably to test
this commit, and it was tricky.)

The change is to give timer callbacks the WriteFence and allow them
to add writes before or after the fence fires.  Writes that they get
in before the fence is armed are included in the fence, and writes
made after the fence fires still succeed (the fence is "retired" and
doesn't complain that it has already fired).  In practice, this means
that methods that care about the writes happening as part of the
method, like Tinytest's run method, can wait for them, and methods
that don't care to wait will just return and let the writes trickle
down the pipe later (as they could before).

In a discussion with Geoff a few weeks ago, he said fences in general
should still complain about late writes unless they are put in a
special mode, so there is now a retire() method.
2012-09-16 00:34:37 -07:00
2012-09-14 18:38:29 -07:00
2012-08-29 21:02:31 -07:00
2012-03-21 19:41:06 -07:00

Meteor

Meteor is an ultra-simple environment for building modern web applications.

With Meteor you write apps:

  • in pure Javascript
  • that send data over the wire, rather than HTML
  • using your choice of popular open-source libraries

Documentation is available at http://docs.meteor.com/

Quick Start

Install Meteor:

curl https://install.meteor.com | /bin/sh

Create a project:

meteor create try-meteor

Run it:

cd try-meteor
meteor

Deploy it to the world, for free:

meteor deploy try-meteor.meteor.com

Slow Start (for developers)

If you want to run on the bleeding edge, or help develop Meteor, you can run Meteor directly from a git checkout.

git clone git://github.com/meteor/meteor.git
cd meteor

If you're the sort of person who likes to build everything from scratch, you can build all the Meteor dependencies (node.js, npm, mongodb, etc) with the provided script. If you do not run this script, Meteor will automatically download pre-compiled binaries when you first run it.

# OPTIONAL
./admin/generate-dev-bundle.sh

Now you can run meteor directly from the checkout (if you did not build the dependency bundle above, this will take a few moments to download a pre-build version).

./meteor --help

Or install to /usr/local like the normal install process. This will cause meteor to be in your PATH.

./install.sh
meteor --help

After installing, you can read the docs locally. The /docs directory is a meteor application, so simply change into the /docs directory and launch the app:

cd docs/
meteor

You'll then be able to read the docs locally in your browser at http://localhost:3000/

Developer Resources

Get in touch! We'd love to hear what you think. You can get involved in several ways:

Description
No description provided
Readme MIT 202 MiB
Languages
JavaScript 91.1%
TypeScript 3.9%
Shell 0.9%
Java 0.7%
Swift 0.7%
Other 2.5%