-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35395/
-----------------------------------------------------------
(Updated June 13, 2015, 12:51 p.m.)
Review request for mesos, Benjamin Hindman and Joris Van Remoortere.
Repository: mesos
Description
-------
(1) Simplify introducing new synchronization primitives.
Before:
```cpp
template <>
class Synchronized<bufferevent>
{
public:
Synchronized(bufferevent* _bev) : bev(CHECK_NOTNULL(_bev))
{
bufferevent_lock(bev);
}
Synchronized(bufferevent** _bev) : Synchronized(*CHECK_NOTNULL(_bev)) {}
~Synchronized()
{
bufferevent_unlock(bev);
}
operator bool() const { return true; }
private:
bufferevent* bev;
};
```
After:
```cpp
Synchronized<bufferevent> synchronize(bufferevent* bev) {
return {
bev,
[](bufferevent* bev) { bufferevent_lock(bev); }
[](bufferevent* bev) { bufferevent_unlock(bev); }
};
}
```
(2) Enable `return` within `synchronized` and avoid the `control reaches end of
non-void function` warning.
```cpp
int foo()
{
int x = 42;
std::mutex m;
synchronized (m) {
return x;
}
}
```
Diffs (updated)
-----
3rdparty/libprocess/3rdparty/stout/include/stout/synchronized.hpp
60eaf263f220b4990aefe4e5d6d2aa1296891e57
Diff: https://reviews.apache.org/r/35395/diff/
Testing
-------
`make check`
Thanks,
Michael Park