137b2b389139ed638831e49708c947863eef631efRonghua Wu/*
237b2b389139ed638831e49708c947863eef631efRonghua Wu * Copyright (C) 2013 The Android Open Source Project
337b2b389139ed638831e49708c947863eef631efRonghua Wu *
437b2b389139ed638831e49708c947863eef631efRonghua Wu * Licensed under the Apache License, Version 2.0 (the "License");
537b2b389139ed638831e49708c947863eef631efRonghua Wu * you may not use this file except in compliance with the License.
637b2b389139ed638831e49708c947863eef631efRonghua Wu * You may obtain a copy of the License at
737b2b389139ed638831e49708c947863eef631efRonghua Wu *
837b2b389139ed638831e49708c947863eef631efRonghua Wu *      http://www.apache.org/licenses/LICENSE-2.0
937b2b389139ed638831e49708c947863eef631efRonghua Wu *
1037b2b389139ed638831e49708c947863eef631efRonghua Wu * Unless required by applicable law or agreed to in writing, software
1137b2b389139ed638831e49708c947863eef631efRonghua Wu * distributed under the License is distributed on an "AS IS" BASIS,
1237b2b389139ed638831e49708c947863eef631efRonghua Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1337b2b389139ed638831e49708c947863eef631efRonghua Wu * See the License for the specific language governing permissions and
1437b2b389139ed638831e49708c947863eef631efRonghua Wu * limitations under the License.
1537b2b389139ed638831e49708c947863eef631efRonghua Wu */
1637b2b389139ed638831e49708c947863eef631efRonghua Wu
1737b2b389139ed638831e49708c947863eef631efRonghua Wupackage com.android.bitmap;
1837b2b389139ed638831e49708c947863eef631efRonghua Wu
1937b2b389139ed638831e49708c947863eef631efRonghua Wuimport java.util.concurrent.Executors;
2037b2b389139ed638831e49708c947863eef631efRonghua Wuimport java.util.concurrent.ThreadFactory;
2137b2b389139ed638831e49708c947863eef631efRonghua Wuimport java.util.concurrent.atomic.AtomicInteger;
2237b2b389139ed638831e49708c947863eef631efRonghua Wu
2337b2b389139ed638831e49708c947863eef631efRonghua Wupublic class NamedThreadFactory implements ThreadFactory {
2437b2b389139ed638831e49708c947863eef631efRonghua Wu    private final ThreadFactory mDefaultThreadFactory;
2537b2b389139ed638831e49708c947863eef631efRonghua Wu    private final String mBaseName;
2637b2b389139ed638831e49708c947863eef631efRonghua Wu    private final AtomicInteger mCount = new AtomicInteger(0);
2737b2b389139ed638831e49708c947863eef631efRonghua Wu
2837b2b389139ed638831e49708c947863eef631efRonghua Wu    public NamedThreadFactory(final String baseName) {
2937b2b389139ed638831e49708c947863eef631efRonghua Wu        mDefaultThreadFactory = Executors.defaultThreadFactory();
3037b2b389139ed638831e49708c947863eef631efRonghua Wu        mBaseName = baseName;
3137b2b389139ed638831e49708c947863eef631efRonghua Wu    }
3237b2b389139ed638831e49708c947863eef631efRonghua Wu
3337b2b389139ed638831e49708c947863eef631efRonghua Wu    @Override
3437b2b389139ed638831e49708c947863eef631efRonghua Wu    public Thread newThread(final Runnable runnable) {
3537b2b389139ed638831e49708c947863eef631efRonghua Wu        final Thread thread = mDefaultThreadFactory.newThread(runnable);
3637b2b389139ed638831e49708c947863eef631efRonghua Wu        thread.setName(mBaseName + "-" + mCount.getAndIncrement());
3737b2b389139ed638831e49708c947863eef631efRonghua Wu        return thread;
3837b2b389139ed638831e49708c947863eef631efRonghua Wu    }
3937b2b389139ed638831e49708c947863eef631efRonghua Wu}
4037b2b389139ed638831e49708c947863eef631efRonghua Wu