class PromiseImpl extends Promise<R> implements ActionHandle {

    @Override
    public void forget() {
        final ResourceCleaner<R> cleaner = mCleaner;
        final R result = mResult;

        mResult = null;
        mCleaner = null;

        if (result != null && cleaner != null) {
            cleaner.clean(result);
        }
    }

      PromiseImpl(@Nullable R result, @Nullable ResourceCleaner<R> cleaner);

}