I am having difficulty understanding the condition variable statement

```
cv.wait(lk, []{return i == 1;});

```

from this [link](http://en.cppreference.com/w/cpp/thread/condition_variable/wait) 

what role does the lambda function play here.

Does the above statement mean "Stop blocking when the mutex held by the unique\_lock lk is free and i==1 "