# SoftBank Robotics documentation What's new in NAOqi 2.8?

# Merge Request #11 - July

## Features

- `Trackable` constructor does not need a pointer to `this` anymore
- Split libqi in two projects to allow not installing tools like qicli
- Added `Future::isValid` to check if a future is associated to a promise
- Added comparison operators to `Path`
- LogProvider: put back `initializeLogging` with default argument
- `File`: added `waitForFinished` which returns a cancelable future
- Hidden services (whose name start with ‘_’) now trigger `qi::Session::serviceRegistered`, `qi::Session::serviceUnregistered` and `qi::Session::waitForService`, like normal services already did

## Bugfixes

- Removed busy loop on thread pool join (on `Application`‘s destructor)
- BoundObject: fixed a deadlock when the destructor of an object would make a remote call over the network
- Future: fixed `thenR<T>` with `T != void`
- Future: fixed `andThenR<void>`
- Object: call<void> did not block in case the function returned a future
- QI_ONCE: Fixed deadlock when the code throws (the behavior is now similar to `std::call_once`)
- Java bindings: fix deadlock when signal’s callbacks would do a call over the network
- LogProvider: fixed crash on program exit
- PeriodicTask: do not stop the periodic task when start is called
- Session: do not connect to public endpoints if the service is local
- Strand: fixed race condition that could lead to a deadlock when calling a stranded function while being on the strand

Glossary Site map Index Support Contact Legal Notices