I am using kivy 1.10.1 with python 3.4.2 on my raspberry pi 3 and the GUI with some buttons and labels is working fine. Now I want to update the GUI every second to show some new data (update the clock, get some values from database etc.)
The Problem:
When I start the timer the GUI is getting very slow. I tested some modifications of the code like disabling the data reading but without any effect. Everytime the timer is called, the GUI is lagging for some milliseconds.
Does anybody have some idea what's the reason for that? I am sure the hardware of my raspberry is not the problem because when I use the kivy examples (e.g. with some 3D rendering) everything is working without any lags.
Kivy details:
[INFO ] [Kivy ] v1.10.1
[INFO ] [Python ] v3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO ] [Window ] Provider: egl_rpi
[INFO ] [GL ] Using the "OpenGL ES 2" graphics system
[INFO ] [GL ] Backend used <gl>
[INFO ] [GL ] OpenGL version <b'OpenGL ES 2.0'>
[INFO ] [GL ] OpenGL vendor <b'Broadcom'>
[INFO ] [GL ] OpenGL renderer <b'VideoCore IV HW'>
[INFO ] [GL ] OpenGL parsed version: 2, 0
[INFO ] [GL ] Shading version <b'OpenGL ES GLSL ES 1.00'>
[INFO ] [GL ] Texture max size <2048>
[INFO ] [GL ] Texture max units <8>
[INFO ] [Window ] virtual keyboard allowed, multiuser mode, not docked
[INFO ] [Text ] Provider: sdl2
[INFO ] [KivyMD ] KivyMD version: 0.1.2
Code snippet:
# Start timer in a separated thread
def start_timer_gui(self):
try:
# Test connection
if s_conn.test_serial(self) == True:
th = threading.Thread(target=self.thread_timer_gui,
args=())
th.start()
...
# Start timer (is in a separated thread)
def thread_timer_gui(self):
Clock.schedule_interval(partial(self.thread_timer_gui_methods), 1)
#timeit
# Call functions for updating gui from separated thread
def thread_timer_gui_methods(self, dt=0):
self.update_gui()
#self.get_measured_vales()
def update_gui(self):
self.emcstatebar.lbl_local_time.text = "13-03-2019 07:32"
...
I already read infos from this page https://kivy.org/doc/stable/guide/events.html but it didn't help me.
Best regards!
I found a solution. If is just update GUI elements with "schedule_interval(...)" everything is working fine. The lag occurs if I try to get measured values via "schedule_interval(...)". I changed getting values to a seperate thread with:
# Get measured values in a separated thread)
def thread_timer_values(self):
while True:
self.get_measured_vales()
time.sleep(2)
Now I can show measured values in GUI without lag!
Related
I am trying to install Kivy on i.MX8QXP.
And the window sever is wayland.
I ues the Kivy recipe from OpenEmbedded.
After I build the image and run my app, I got error like this.
[INFO ] [GL ] OpenGL version <b'OpenGL ES-CM 1.1'>
[INFO ] [GL ] OpenGL vendor <b'Vivante Corporation'>
[INFO ] [GL ] OpenGL renderer <b'Vivante GC7000L'>
GL glGetString( name = 7938, )
[INFO ] [GL ] OpenGL parsed version: 1, 1
[CRITICAL] [GL ] Minimum required OpenGL version (2.0) NOT found!
OpenGL version detected: 1.1
Version: b'OpenGL ES-CM 1.1'
Vendor: b'Vivante Corporation'
Renderer: b'Vivante GC7000L'
Try upgrading your graphics drivers and/or your graphics hardware in case of problems.
The application will leave now.
GL glGetString( name = 35724, )
Segmentation fault
But OpenGL ES 2 is there.
root#iBox-500:~/kivyTest# locate libGLES
/usr/lib/libGLES_CL.so
/usr/lib/libGLES_CL.so.1
/usr/lib/libGLES_CL.so.1.1.0
/usr/lib/libGLES_CM.so
/usr/lib/libGLES_CM.so.1
/usr/lib/libGLES_CM.so.1.1.0
/usr/lib/libGLESv1_CL.so
/usr/lib/libGLESv1_CL.so.1
/usr/lib/libGLESv1_CL.so.1.1.0
/usr/lib/libGLESv1_CM.so
/usr/lib/libGLESv1_CM.so.1
/usr/lib/libGLESv1_CM.so.1.1.0
/usr/lib/libGLESv2.so
/usr/lib/libGLESv2.so.2
/usr/lib/libGLESv2.so.2.0.0
And the build tag for Kivy seems notrhing wrong.
* use_rpi = 0
* use_egl = 0
* use_opengl_es2 = 1
* use_opengl_mock = 0
* use_sdl2 = 1
* use_pangoft2 = 1
* use_ios = 0
* use_android = 0
* use_mesagl = 0
* use_x11 = 0
* use_wayland = 1
* use_gstreamer = 1
* use_avfoundation = 0
* use_osx_frameworks = 0
* debug_gl = 0
* kivy_sdl_gl_alpha_size = 8
* debug = False
I think is libaries link problem, but I have no idea how to fix it.
I'm on my way to simplify a set of tests by pytest by stacking parameters
import pytest
#pytest.mark.parametrize("option_a", ["-r", "-s"])
#pytest.mark.parametrize("option_b", ["--alpha", "--beta", "--gamma"])
def test_foo(option_a, option_b):
assert option_a in ["-r", "-s"]
As anticipated, the above MWE performs an exhaustive permutation:
======================================= test session starts =======================================
platform linux -- Python 3.9.7, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /home/guest/Desktop/project, configfile: pytest.ini
collected 6 items
test_ping.py::test_foo[--alpha--r] PASSED [ 16%]
test_ping.py::test_foo[--alpha--s] PASSED [ 33%]
test_ping.py::test_foo[--beta--r] PASSED [ 50%]
test_ping.py::test_foo[--beta--s] PASSED [ 66%]
test_ping.py::test_foo[--gamma--r] PASSED [ 83%]
test_ping.py::test_foo[--gamma--s] PASSED [100%]
======================================== 6 passed in 0.02s ========================================
What bothers me a bit is the additional dash trailing the first parameter (--alpha, --beta, --gamma). Someone not familiar enough with pytest may assume the second parameter tested would be --r (instead of -r), or --s (instead of -s).
Is there a practical approach to substitute this separator by a blank space? Since this is just an issue how output to the CLI is formatted, I would like to refrain to define multiple fixtures for each test function.
To summarize our comments, it's possible to use ids and keep in mind test ordering. pytest is going to use the parameter with the higher number of levels as an outer loop (here: option_b), the one with fewer levels as the inner one (here: option_a). Also, I have added the custom_format function as an example of an approach how to custom a view of a parameter.
import pytest
#pytest.mark.parametrize("option_a", ["-r", "-s"], ids=[" -r", " -s"])
#pytest.mark.parametrize("option_b", ["--alpha", "--beta", "--gamma"], ids=["--alpha ", "--beta ", "--gamma "])
def test_foo(option_a, option_b):
assert option_a in ["-r", "-s"]
def custom_format(val):
return f" {val} "
#pytest.mark.parametrize("option_a", ["-r", "-s"], ids=custom_format)
#pytest.mark.parametrize("option_b", ["--alpha", "--beta", "--gamma"], ids=custom_format)
def test_foo_1(option_a, option_b):
assert option_a in ["-r", "-s"]
It will not remove hyphens between parameters but could decrease confusion.
collected 12 items
test_.py::test_foo[--alpha - -r] PASSED [ 8%]
test_.py::test_foo[--alpha - -s] PASSED [ 16%]
test_.py::test_foo[--beta - -r] PASSED [ 25%]
test_.py::test_foo[--beta - -s] PASSED [ 33%]
test_.py::test_foo[--gamma - -r] PASSED [ 41%]
test_.py::test_foo[--gamma - -s] PASSED [ 50%]
test_.py::test_foo_1[ --alpha - -r ] PASSED [ 58%]
test_.py::test_foo_1[ --alpha - -s ] PASSED [ 66%]
test_.py::test_foo_1[ --beta - -r ] PASSED [ 75%]
test_.py::test_foo_1[ --beta - -s ] PASSED [ 83%]
test_.py::test_foo_1[ --gamma - -r ] PASSED [ 91%]
test_.py::test_foo_1[ --gamma - -s ] PASSED [100%]
I have a *.csv file that store two columns of float data.
I am using this function to import it but it generates the data not separated with comma.
data=np.genfromtxt("data.csv", delimiter=',', dtype=float)
output:
[[ 403.14915 150.560364 ]
[ 403.7822265 135.13165 ]
[ 404.5017 163.4669 ]
[ 434.02465 168.023224 ]
[ 373.7655 177.904114 ]
[ 450.608429 208.4187315]
[ 454.39475 239.9666595]
[ 453.8055 248.4082 ]
[ 457.5625305 247.70315 ]
[ 451.729431 258.19335 ]
[ 366.74405 225.169922 ]
[ 377.0055235 258.110077 ]
[ 380.3581 261.760071 ]
[ 383.98615 262.33805 ]
[ 388.2516785 272.715332 ]
[ 408.378174 200.9713135]]
How to format it to get a numpy array like
[[ 403.14915, 150.560364 ]
[ 403.7822265, 135.13165 ],....]
?
NumPy doesn't display commas when you print arrays. If you really want to see them, you can use
print(repr(data))
The repr function forces a str representation not ment for "nice" printing, but for the literal representation you would use yourself to type the data in your code.
I'm trying to create a toolchain for x86_64 linux on a 64 bit Mac running OSX 10.9.5 and using crosstool-ng-1.22.0. I have tried building using a number of the samples (x86_64-w64-mingw32,x86_64-pc-linux-gnu and x86_64-unknown-linux-gnu) but I am running into build errors, as shown below. I am not building the gold linker, nor am I attempting to link statically, and I am building on a case-sensitive file system. The build.log and config are shown after the error listing.
It looks as though the build environment is perhaps looking for OSX header files (within /usr/include) when installing/building the kernel headers, rather than Linux ones, but I don't know what to do to fix this.
Can anyone please offer advice for what I need to do to build successfully?
$ ct-ng build
[INFO ] Performing some trivial sanity checks
[INFO ] Build started 20160825.084703
[INFO ] Building environment variables
[WARN ] Directory '/Volumes/CaseSensitiveLinux/ct-ng/src' does not exist.
[WARN ] Will not save downloaded tarballs to local storage.
[EXTRA] Preparing working directories
[EXTRA] Installing user-supplied crosstool-NG configuration
[EXTRA] =================================================================
[EXTRA] Dumping internal crosstool-NG configuration
[EXTRA] Building a toolchain for:
[EXTRA] build = x86_64-apple-darwin13.4.0
[EXTRA] host = x86_64-apple-darwin13.4.0
[EXTRA] target = x86_64-unknown-linux-gnu
[EXTRA] Dumping internal crosstool-NG configuration: done in 0.00s (at 00:05)
[INFO ] =================================================================
[INFO ] Retrieving needed toolchain components' tarballs
[INFO ] Retrieving needed toolchain components' tarballs: done in 1.00s (at 00:06)
[INFO ] =================================================================
[INFO ] Extracting and patching toolchain components
[INFO ] Extracting and patching toolchain components: done in 0.00s (at 00:06)
[INFO ] =================================================================
[INFO ] Installing ncurses for build
[EXTRA] Configuring ncurses
[EXTRA] Building ncurses
[EXTRA] Installing ncurses
[INFO ] Installing ncurses for build: done in 22.00s (at 00:28)
[INFO ] =================================================================
[INFO ] Installing gettext for build
[EXTRA] Configuring gettext
[EXTRA] Building gettext
[EXTRA] Installing gettext
[INFO ] Installing gettext for build: done in 228.00s (at 04:17)
[INFO ] =================================================================
[INFO ] Installing GMP for host
[EXTRA] Configuring GMP
[EXTRA] Building GMP
[EXTRA] Installing GMP
[INFO ] Installing GMP for host: done in 36.00s (at 04:53)
[INFO ] =================================================================
[INFO ] Installing MPFR for host
[EXTRA] Configuring MPFR
[EXTRA] Building MPFR
[EXTRA] Installing MPFR
[INFO ] Installing MPFR for host: done in 23.00s (at 05:16)
[INFO ] =================================================================
[INFO ] Installing ISL for host
[EXTRA] Configuring ISL
[EXTRA] Building ISL
[EXTRA] Installing ISL
[INFO ] Installing ISL for host: done in 15.00s (at 05:31)
[INFO ] =================================================================
[INFO ] Installing MPC for host
[EXTRA] Configuring MPC
[EXTRA] Building MPC
[EXTRA] Installing MPC
[INFO ] Installing MPC for host: done in 11.00s (at 05:42)
[INFO ] =================================================================
[INFO ] Installing expat for host
[EXTRA] Configuring expat
[EXTRA] Building expat
[EXTRA] Installing expat
[INFO ] Installing expat for host: done in 7.00s (at 05:49)
[INFO ] =================================================================
[INFO ] Installing gettext for host
[EXTRA] Configuring gettext
[EXTRA] Building gettext
[EXTRA] Installing gettext
[INFO ] Installing gettext for host: done in 196.00s (at 09:05)
[INFO ] =================================================================
[INFO ] Installing binutils for host
[EXTRA] Configuring binutils
[EXTRA] Building binutils
[EXTRA] Installing binutils
[INFO ] Installing binutils for host: done in 51.00s (at 09:56)
[INFO ] =================================================================
[INFO ] Installing pass-1 core C gcc compiler
[EXTRA] Configuring core C gcc compiler
[EXTRA] Building gcc
[EXTRA] Installing gcc
[EXTRA] Housekeeping for final gcc compiler
[INFO ] Installing pass-1 core C gcc compiler: done in 154.00s (at 12:30)
[INFO ] =================================================================
[INFO ] Installing kernel headers
[EXTRA] Installing kernel headers
[ERROR] /usr/include/bits/types.h:43:25: error: typedef redefinition with different types ('long' vs 'long long')
[ERROR] /usr/include/bits/types.h:44:27: error: typedef redefinition with different types ('unsigned long' vs 'unsigned long long')
[ERROR] /Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50/arch/x86/tools/relocs.h:15:10: fatal error: 'endian.h' file not found
[ERROR] make[3]: *** [arch/x86/tools/relocs_32.o] Error 1
[ERROR] make[2]: *** [archscripts] Error 2
[ERROR] make[1]: *** [sub-make] Error 2
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing kernel headers'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions#216]
[ERROR] >> called from: do_kernel_install[scripts/build/kernel/linux.sh#119]
[ERROR] >> called from: do_kernel_headers[scripts/build/kernel/linux.sh#91]
[ERROR] >> called from: main[scripts/crosstool-NG.sh#646]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> '/usr/local/Cellar/crosstool-ng/1.22.0_1/share/doc/crosstool-ng/crosstool-ng-1.22.0/B - Known issues.txt'
[ERROR]
[ERROR] (elapsed: 12:32.00)
[12:32] / make: *** [build] Error 1
Here is the relevant part of the build.log:
[DEBUG] ==> Executing: 'ln' '-sfv' 'x86_64-unknown-linux-gnu-gcc' '/Volumes/CaseSensitiveLinux/ct-ng/.build/x86_64-unknown-linux-gnu/buildtools/bin/x86_64-unknown-linux-gnu-cc'
[ALL ] /Volumes/CaseSensitiveLinux/ct-ng/.build/x86_64-unknown-linux-gnu/buildtools/bin/x86_64-unknown-linux-gnu-cc -> x86_64-unknown-linux-gnu-gcc
[INFO ] Installing pass-1 core C gcc compiler: done in 154.00s (at 12:30)
[INFO ] =================================================================
[INFO ] Installing kernel headers
[DEBUG] Using kernel's headers_install
[EXTRA] Installing kernel headers
[DEBUG] ==> Executing: '/usr/bin/make' '-C' '/Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50' 'CROSS_COMPILE=x86_64-unknown-linux-gnu-' 'O=/Volumes/CaseSensitiveLinux/ct-ng/.build/x86_64-unknown-linux-gnu/build/build-kernel-headers' 'ARCH=x86' 'INSTALL_HDR_PATH=/Volumes/CaseSensitiveLinux/ct-ng/x-tools/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sysroot/usr' 'V=0' 'headers_install'
[ALL ] CHK include/generated/uapi/linux/version.h
[ALL ] UPD include/generated/uapi/linux/version.h
[ALL ] HOSTCC scripts/basic/fixdep
[ALL ] WRAP arch/x86/include/generated/asm/clkdev.h
[ALL ] SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
[ALL ] SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
[ALL ] SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
[ALL ] SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_32.h
[ALL ] HOSTCC arch/x86/tools/relocs_32.o
[ALL ] In file included from /Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50/arch/x86/tools/relocs_32.c:1:
[ALL ] In file included from /Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50/arch/x86/tools/relocs.h:13:
[ALL ] In file included from /usr/include/byteswap.h:24:
[ALL ] In file included from /usr/include/bits/byteswap.h:27:
[ERROR] /usr/include/bits/types.h:43:25: error: typedef redefinition with different types ('long' vs 'long long')
[ALL ] typedef signed long int __int64_t;
[ALL ] ^
[ALL ] /usr/include/i386/_types.h:46:20: note: previous definition is here
[ALL ] typedef long long __int64_t;
[ALL ] ^
[ALL ] In file included from /Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50/arch/x86/tools/relocs_32.c:1:
[ALL ] In file included from /Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50/arch/x86/tools/relocs.h:13:
[ALL ] In file included from /usr/include/byteswap.h:24:
[ALL ] In file included from /usr/include/bits/byteswap.h:27:
[ERROR] /usr/include/bits/types.h:44:27: error: typedef redefinition with different types ('unsigned long' vs 'unsigned long long')
[ALL ] typedef unsigned long int __uint64_t;
[ALL ] ^
[ALL ] /usr/include/i386/_types.h:47:28: note: previous definition is here
[ALL ] typedef unsigned long long __uint64_t;
[ALL ] ^
[ALL ] In file included from /Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50/arch/x86/tools/relocs_32.c:1:
[ERROR] /Volumes/CaseSensitiveLinux/ct-ng/.build/src/linux-3.12.50/arch/x86/tools/relocs.h:15:10: fatal error: 'endian.h' file not found
[ALL ] #include <endian.h>
[ALL ] ^
[ALL ] 3 errors generated.
[ERROR] make[3]: *** [arch/x86/tools/relocs_32.o] Error 1
[ERROR] make[2]: *** [archscripts] Error 2
[ERROR] make[1]: *** [sub-make] Error 2
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing kernel headers'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions#216]
[ERROR] >> called from: do_kernel_install[scripts/build/kernel/linux.sh#119]
[ERROR] >> called from: do_kernel_headers[scripts/build/kernel/linux.sh#91]
[ERROR] >> called from: main[scripts/crosstool-NG.sh#646]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> '/usr/local/Cellar/crosstool-ng/1.22.0_1/share/doc/crosstool-ng/crosstool-ng-1.22.0/B - Known issues.txt'
[ERROR]
[ERROR] (elapsed: 12:32.00)
Finally, here is the config file:
$ cat .config
#
# Automatically generated file; DO NOT EDIT.
# Crosstool-NG Configuration
#
CT_CONFIGURE_has_make381=y
CT_CONFIGURE_has_xz=y
CT_CONFIGURE_has_svn=y
CT_MODULES=y
#
# Paths and misc options
#
#
# crosstool-NG behavior
#
# CT_OBSOLETE is not set
# CT_EXPERIMENTAL is not set
# CT_DEBUG_CT is not set
#
# Paths
#
CT_LOCAL_TARBALLS_DIR="/Volumes/CaseSensitiveLinux/ct-ng/src"
CT_SAVE_TARBALLS=y
CT_WORK_DIR="/Volumes/CaseSensitiveLinux/ct-ng/.build"
CT_PREFIX_DIR="/Volumes/CaseSensitiveLinux/ct-ng/x-tools/${CT_TARGET}"
CT_INSTALL_DIR="${CT_PREFIX_DIR}"
CT_RM_RF_PREFIX_DIR=y
CT_REMOVE_DOCS=y
CT_INSTALL_DIR_RO=y
CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y
# CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES is not set
#
# Downloading
#
# CT_FORBID_DOWNLOAD is not set
# CT_FORCE_DOWNLOAD is not set
CT_CONNECT_TIMEOUT=10
# CT_ONLY_DOWNLOAD is not set
# CT_USE_MIRROR is not set
#
# Extracting
#
# CT_FORCE_EXTRACT is not set
CT_OVERIDE_CONFIG_GUESS_SUB=y
# CT_ONLY_EXTRACT is not set
CT_PATCH_BUNDLED=y
# CT_PATCH_LOCAL is not set
# CT_PATCH_BUNDLED_LOCAL is not set
# CT_PATCH_LOCAL_BUNDLED is not set
# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
# CT_PATCH_NONE is not set
CT_PATCH_ORDER="bundled"
#
# Build behavior
#
CT_PARALLEL_JOBS=0
CT_LOAD=""
CT_USE_PIPES=y
CT_EXTRA_CFLAGS_FOR_BUILD=""
CT_EXTRA_LDFLAGS_FOR_BUILD=""
CT_EXTRA_CFLAGS_FOR_HOST=""
CT_EXTRA_LDFLAGS_FOR_HOST=""
# CT_CONFIG_SHELL_SH is not set
# CT_CONFIG_SHELL_ASH is not set
CT_CONFIG_SHELL_BASH=y
# CT_CONFIG_SHELL_CUSTOM is not set
CT_CONFIG_SHELL="${bash}"
#
# Logging
#
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
CT_LOG_EXTRA=y
# CT_LOG_ALL is not set
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y
#
# Target options
#
CT_ARCH="x86"
CT_ARCH_SUPPORTS_32=y
CT_ARCH_SUPPORTS_64=y
CT_ARCH_SUPPORTS_WITH_ARCH=y
CT_ARCH_SUPPORTS_WITH_CPU=y
CT_ARCH_SUPPORTS_WITH_TUNE=y
CT_ARCH_DEFAULT_32=y
CT_ARCH_ARCH=""
CT_ARCH_CPU=""
CT_ARCH_TUNE=""
# CT_ARCH_32 is not set
CT_ARCH_64=y
CT_ARCH_BITNESS=64
CT_TARGET_CFLAGS=""
CT_TARGET_LDFLAGS=""
# CT_ARCH_alpha is not set
# CT_ARCH_arm is not set
# CT_ARCH_avr is not set
# CT_ARCH_m68k is not set
# CT_ARCH_mips is not set
# CT_ARCH_nios2 is not set
# CT_ARCH_powerpc is not set
# CT_ARCH_s390 is not set
# CT_ARCH_sh is not set
# CT_ARCH_sparc is not set
CT_ARCH_x86=y
# CT_ARCH_xtensa is not set
CT_ARCH_alpha_AVAILABLE=y
CT_ARCH_arm_AVAILABLE=y
CT_ARCH_avr_AVAILABLE=y
CT_ARCH_m68k_AVAILABLE=y
CT_ARCH_microblaze_AVAILABLE=y
CT_ARCH_mips_AVAILABLE=y
CT_ARCH_nios2_AVAILABLE=y
CT_ARCH_powerpc_AVAILABLE=y
CT_ARCH_s390_AVAILABLE=y
CT_ARCH_sh_AVAILABLE=y
CT_ARCH_sparc_AVAILABLE=y
CT_ARCH_x86_AVAILABLE=y
CT_ARCH_xtensa_AVAILABLE=y
CT_ARCH_SUFFIX=""
#
# Generic target options
#
# CT_MULTILIB is not set
CT_ARCH_USE_MMU=y
#
# Target optimisations
#
CT_ARCH_FLOAT=""
#
# Toolchain options
#
#
# General toolchain options
#
CT_FORCE_SYSROOT=y
CT_USE_SYSROOT=y
CT_SYSROOT_NAME="sysroot"
CT_SYSROOT_DIR_PREFIX=""
# CT_STATIC_TOOLCHAIN is not set
CT_TOOLCHAIN_PKGVERSION=""
CT_TOOLCHAIN_BUGURL=""
#
# Tuple completion and aliasing
#
CT_TARGET_VENDOR="unknown"
CT_TARGET_ALIAS_SED_EXPR=""
CT_TARGET_ALIAS=""
#
# Toolchain type
#
CT_CROSS=y
# CT_CANADIAN is not set
CT_TOOLCHAIN_TYPE="cross"
#
# Build system
#
CT_BUILD=""
CT_BUILD_PREFIX=""
CT_BUILD_SUFFIX=""
#
# Misc options
#
# CT_TOOLCHAIN_ENABLE_NLS is not set
#
# Operating System
#
CT_KERNEL_SUPPORTS_SHARED_LIBS=y
CT_KERNEL="linux"
CT_KERNEL_VERSION="3.12.50"
# CT_KERNEL_bare_metal is not set
CT_KERNEL_linux=y
CT_KERNEL_bare_metal_AVAILABLE=y
CT_KERNEL_linux_AVAILABLE=y
# CT_KERNEL_V_4_3 is not set
# CT_KERNEL_V_4_2 is not set
# CT_KERNEL_V_4_1 is not set
# CT_KERNEL_V_3_18 is not set
# CT_KERNEL_V_3_14 is not set
CT_KERNEL_V_3_12=y
# CT_KERNEL_V_3_10 is not set
# CT_KERNEL_V_3_4 is not set
# CT_KERNEL_V_3_2 is not set
# CT_KERNEL_V_2_6_32 is not set
# CT_KERNEL_LINUX_CUSTOM is not set
CT_KERNEL_windows_AVAILABLE=y
#
# Common kernel options
#
CT_SHARED_LIBS=y
#
# linux other options
#
CT_KERNEL_LINUX_VERBOSITY_0=y
# CT_KERNEL_LINUX_VERBOSITY_1 is not set
# CT_KERNEL_LINUX_VERBOSITY_2 is not set
CT_KERNEL_LINUX_VERBOSE_LEVEL=0
CT_KERNEL_LINUX_INSTALL_CHECK=y
#
# Binary utilities
#
CT_ARCH_BINFMT_ELF=y
CT_BINUTILS="binutils"
CT_BINUTILS_binutils=y
#
# GNU binutils
#
# CT_CC_BINUTILS_SHOW_LINARO is not set
CT_BINUTILS_V_2_25_1=y
# CT_BINUTILS_V_2_25 is not set
# CT_BINUTILS_V_2_24 is not set
# CT_BINUTILS_V_2_23_2 is not set
# CT_BINUTILS_V_2_23_1 is not set
# CT_BINUTILS_V_2_22 is not set
# CT_BINUTILS_V_2_21_53 is not set
# CT_BINUTILS_V_2_21_1a is not set
# CT_BINUTILS_V_2_20_1a is not set
# CT_BINUTILS_V_2_19_1a is not set
# CT_BINUTILS_V_2_18a is not set
CT_BINUTILS_VERSION="2.25.1"
CT_BINUTILS_2_25_1_or_later=y
CT_BINUTILS_2_25_or_later=y
CT_BINUTILS_2_24_or_later=y
CT_BINUTILS_2_23_or_later=y
CT_BINUTILS_2_22_or_later=y
CT_BINUTILS_2_21_or_later=y
CT_BINUTILS_2_20_or_later=y
CT_BINUTILS_2_19_or_later=y
CT_BINUTILS_2_18_or_later=y
CT_BINUTILS_HAS_HASH_STYLE=y
CT_BINUTILS_HAS_GOLD=y
CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
CT_BINUTILS_GOLD_SUPPORT=y
CT_BINUTILS_HAS_PLUGINS=y
CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
CT_BINUTILS_FORCE_LD_BFD=y
CT_BINUTILS_LINKER_LD=y
# CT_BINUTILS_LINKER_LD_GOLD is not set
# CT_BINUTILS_LINKER_GOLD_LD is not set
CT_BINUTILS_LINKERS_LIST="ld"
CT_BINUTILS_LINKER_DEFAULT="bfd"
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
# CT_BINUTILS_FOR_TARGET is not set
#
# binutils other options
#
#
# C-library
#
CT_LIBC="glibc"
CT_LIBC_VERSION="2.22"
CT_LIBC_glibc=y
# CT_LIBC_musl is not set
# CT_LIBC_uClibc is not set
CT_LIBC_avr_libc_AVAILABLE=y
CT_LIBC_glibc_AVAILABLE=y
CT_THREADS="nptl"
# CT_CC_GLIBC_SHOW_LINARO is not set
CT_LIBC_GLIBC_V_2_22=y
# CT_LIBC_GLIBC_V_2_21 is not set
# CT_LIBC_GLIBC_V_2_20 is not set
# CT_LIBC_GLIBC_V_2_19 is not set
# CT_LIBC_GLIBC_V_2_18 is not set
# CT_LIBC_GLIBC_V_2_17 is not set
# CT_LIBC_GLIBC_V_2_16_0 is not set
# CT_LIBC_GLIBC_V_2_15 is not set
# CT_LIBC_GLIBC_V_2_14_1 is not set
# CT_LIBC_GLIBC_V_2_14 is not set
# CT_LIBC_GLIBC_V_2_13 is not set
# CT_LIBC_GLIBC_V_2_12_2 is not set
# CT_LIBC_GLIBC_V_2_12_1 is not set
# CT_LIBC_GLIBC_V_2_11_1 is not set
# CT_LIBC_GLIBC_V_2_11 is not set
# CT_LIBC_GLIBC_V_2_10_1 is not set
# CT_LIBC_GLIBC_V_2_9 is not set
# CT_LIBC_GLIBC_V_2_8 is not set
CT_LIBC_GLIBC_2_21_or_later=y
CT_LIBC_GLIBC_2_20_or_later=y
CT_LIBC_GLIBC_2_17_or_later=y
CT_LIBC_mingw_AVAILABLE=y
CT_LIBC_musl_AVAILABLE=y
CT_LIBC_newlib_AVAILABLE=y
CT_LIBC_none_AVAILABLE=y
CT_LIBC_uClibc_AVAILABLE=y
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
#
# Common C library options
#
CT_THREADS_NATIVE=y
CT_LIBC_XLDD=y
#
# glibc other options
#
# CT_LIBC_GLIBC_PORTS_EXTERNAL is not set
CT_LIBC_glibc_familly=y
CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY=""
CT_LIBC_GLIBC_CONFIGPARMS=""
CT_LIBC_GLIBC_EXTRA_CFLAGS=""
CT_LIBC_EXTRA_CC_ARGS=""
# CT_LIBC_DISABLE_VERSIONING is not set
CT_LIBC_OLDEST_ABI=""
CT_LIBC_GLIBC_FORCE_UNWIND=y
CT_LIBC_ADDONS_LIST=""
# CT_LIBC_LOCALES is not set
CT_LIBC_GLIBC_KERNEL_VERSION_NONE=y
# CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS is not set
# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
CT_LIBC_GLIBC_MIN_KERNEL=""
#
# C compiler
#
CT_CC="gcc"
CT_CC_CORE_PASSES_NEEDED=y
CT_CC_CORE_PASS_1_NEEDED=y
CT_CC_CORE_PASS_2_NEEDED=y
CT_CC_gcc=y
# CT_CC_GCC_SHOW_LINARO is not set
CT_CC_GCC_V_5_2_0=y
# CT_CC_GCC_V_4_9_3 is not set
# CT_CC_GCC_V_4_8_5 is not set
# CT_CC_GCC_V_4_7_4 is not set
# CT_CC_GCC_V_4_6_4 is not set
# CT_CC_GCC_V_4_5_4 is not set
# CT_CC_GCC_V_4_4_7 is not set
# CT_CC_GCC_V_4_3_6 is not set
# CT_CC_GCC_V_4_2_4 is not set
CT_CC_GCC_4_2_or_later=y
CT_CC_GCC_4_3_or_later=y
CT_CC_GCC_4_4_or_later=y
CT_CC_GCC_4_5_or_later=y
CT_CC_GCC_4_6_or_later=y
CT_CC_GCC_4_7_or_later=y
CT_CC_GCC_4_8_or_later=y
CT_CC_GCC_4_9_or_later=y
CT_CC_GCC_5=y
CT_CC_GCC_5_or_later=y
CT_CC_GCC_HAS_GRAPHITE=y
CT_CC_GCC_USE_GRAPHITE=y
CT_CC_GCC_HAS_LTO=y
CT_CC_GCC_USE_LTO=y
CT_CC_GCC_HAS_PKGVERSION_BUGURL=y
CT_CC_GCC_HAS_BUILD_ID=y
CT_CC_GCC_HAS_LNK_HASH_STYLE=y
CT_CC_GCC_ENABLE_PLUGINS=y
CT_CC_GCC_USE_GMP_MPFR=y
CT_CC_GCC_USE_MPC=y
CT_CC_GCC_HAS_LIBQUADMATH=y
CT_CC_GCC_HAS_LIBSANITIZER=y
CT_CC_GCC_VERSION="5.2.0"
# CT_CC_LANG_FORTRAN is not set
CT_CC_GCC_ENABLE_CXX_FLAGS=""
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_EXTRA_ENV_ARRAY=""
# CT_CC_GCC_STATIC_LIBSTDCXX is not set
# CT_CC_GCC_SYSTEM_ZLIB is not set
#
# Optimisation features
#
#
# Settings for libraries running on target
#
CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
# CT_CC_GCC_LIBMUDFLAP is not set
# CT_CC_GCC_LIBGOMP is not set
# CT_CC_GCC_LIBSSP is not set
# CT_CC_GCC_LIBQUADMATH is not set
# CT_CC_GCC_LIBSANITIZER is not set
#
# Misc. obscure options.
#
CT_CC_CXA_ATEXIT=y
# CT_CC_GCC_DISABLE_PCH is not set
CT_CC_GCC_SJLJ_EXCEPTIONS=m
CT_CC_GCC_LDBL_128=m
# CT_CC_GCC_BUILD_ID is not set
# CT_CC_GCC_LNK_HASH_STYLE_DEFAULT is not set
# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set
# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set
CT_CC_GCC_LNK_HASH_STYLE_BOTH=y
CT_CC_GCC_LNK_HASH_STYLE="both"
CT_CC_GCC_DEC_FLOAT_AUTO=y
# CT_CC_GCC_DEC_FLOAT_BID is not set
# CT_CC_GCC_DEC_FLOAT_DPD is not set
# CT_CC_GCC_DEC_FLOATS_NO is not set
CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_JAVA=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y
CT_CC_SUPPORT_GOLANG=y
#
# Additional supported languages:
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_JAVA is not set
#
# Debug facilities
#
# CT_DEBUG_dmalloc is not set
# CT_DEBUG_duma is not set
CT_DEBUG_gdb=y
CT_GDB_CROSS=y
# CT_GDB_CROSS_STATIC is not set
# CT_GDB_CROSS_SIM is not set
CT_GDB_CROSS_PYTHON=y
CT_GDB_CROSS_EXTRA_CONFIG_ARRAY=""
# CT_GDB_NATIVE is not set
CT_GDB_GDBSERVER=y
CT_GDB_GDBSERVER_HAS_IPA_LIB=y
CT_GDB_GDBSERVER_STATIC=y
#
# gdb version
#
# CT_DEBUG_GDB_SHOW_LINARO is not set
CT_GDB_V_7_10=y
# CT_GDB_V_7_9_1 is not set
# CT_GDB_V_7_9 is not set
# CT_GDB_V_7_8_2 is not set
# CT_GDB_V_7_8_1 is not set
# CT_GDB_V_7_8 is not set
# CT_GDB_V_7_7_1 is not set
# CT_GDB_V_7_7 is not set
# CT_GDB_V_7_6_1 is not set
# CT_GDB_V_7_5_1 is not set
# CT_GDB_V_7_4_1 is not set
# CT_GDB_V_7_4 is not set
# CT_GDB_V_7_3_1 is not set
# CT_GDB_V_7_3a is not set
# CT_GDB_V_7_2a is not set
# CT_GDB_V_7_1a is not set
# CT_GDB_V_7_0_1a is not set
# CT_GDB_V_7_0a is not set
# CT_GDB_V_6_8a is not set
CT_GDB_7_2_or_later=y
CT_GDB_7_0_or_later=y
CT_GDB_HAS_PKGVERSION_BUGURL=y
CT_GDB_HAS_PYTHON=y
CT_GDB_INSTALL_GDBINIT=y
CT_GDB_VERSION="7.10"
# CT_DEBUG_ltrace is not set
# CT_DEBUG_strace is not set
#
# Companion libraries
#
CT_COMPLIBS_NEEDED=y
CT_LIBICONV_NEEDED=y
CT_GETTEXT_NEEDED=y
CT_GMP_NEEDED=y
CT_MPFR_NEEDED=y
CT_ISL_NEEDED=y
CT_MPC_NEEDED=y
CT_EXPAT_NEEDED=y
CT_NCURSES_NEEDED=y
CT_COMPLIBS=y
CT_LIBICONV=y
CT_GETTEXT=y
CT_GMP=y
CT_MPFR=y
CT_ISL=y
CT_MPC=y
CT_EXPAT=y
CT_NCURSES=y
CT_LIBICONV_V_1_14=y
CT_LIBICONV_VERSION="1.14"
CT_GETTEXT_V_0_19_6=y
CT_GETTEXT_VERSION="0.19.6"
CT_GMP_V_6_0_0=y
# CT_GMP_V_5_1_3 is not set
# CT_GMP_V_5_1_1 is not set
# CT_GMP_V_5_0_2 is not set
# CT_GMP_V_5_0_1 is not set
# CT_GMP_V_4_3_2 is not set
# CT_GMP_V_4_3_1 is not set
# CT_GMP_V_4_3_0 is not set
CT_GMP_5_0_2_or_later=y
CT_GMP_VERSION="6.0.0a"
CT_MPFR_V_3_1_3=y
# CT_MPFR_V_3_1_2 is not set
# CT_MPFR_V_3_1_0 is not set
# CT_MPFR_V_3_0_1 is not set
# CT_MPFR_V_3_0_0 is not set
# CT_MPFR_V_2_4_2 is not set
# CT_MPFR_V_2_4_1 is not set
# CT_MPFR_V_2_4_0 is not set
CT_MPFR_VERSION="3.1.3"
CT_ISL_V_0_14=y
# CT_ISL_V_0_12_2 is not set
CT_ISL_V_0_14_or_later=y
CT_ISL_V_0_12_or_later=y
CT_ISL_VERSION="0.14"
CT_MPC_V_1_0_3=y
# CT_MPC_V_1_0_2 is not set
# CT_MPC_V_1_0_1 is not set
# CT_MPC_V_1_0 is not set
# CT_MPC_V_0_9 is not set
# CT_MPC_V_0_8_2 is not set
# CT_MPC_V_0_8_1 is not set
# CT_MPC_V_0_7 is not set
CT_MPC_VERSION="1.0.3"
CT_EXPAT_V_2_1_0=y
CT_EXPAT_VERSION="2.1.0"
CT_NCURSES_V_6_0=y
CT_NCURSES_VERSION="6.0"
#
# Companion libraries common options
#
# CT_COMPLIBS_CHECK is not set
#
# Companion tools
#
#
# READ HELP before you say 'Y' below !!!
#
# CT_COMP_TOOLS is not set
It turns out that you need to provide an implementation of endian.h (with thanks to Waldemar Brodkorb on the crosstool-ng mailing list) for his steer. There were additional edits required to get a successful build - glibc was the main problem. I got a script to do the build for me working (OSX 10.9) and have posted it on Github.
I am using ThreadPool executor in a do while loop as a deamon process.
At the start of every iteration i am creating newFixedThreadPool:
executor = Executors.newFixedThreadPool(5);
After the task gets finished, i am calling shutdown before the next iteration starts and the newFixedPool gets created for new 5 worker Threads.
Now while printing Log4J logs. I am using [%t] to show which threadpool getting executed.
I see for every iteration new threadpool getting created with an incremented number.
Please let me know do i need to call executor=null, before starting the next iteration?
Is the incremented threadpool indicates, threadpool getting accumulated and may result to memory leak as it's a deamon process or in the back end threadpool will be garbage collected as all threads have been completed and we already executed shutdown.
2014-06-26 16:26:11,548 [47 ] [INFO ][pool-1-thread-1] - Started processing new payments for serverID: 5
2014-06-26 16:26:11,548 [47 ] [INFO ][pool-1-thread-2] - Started processing new payments for serverID: 6
2014-06-26 16:26:11,548 [47 ] [INFO ][pool-1-thread-3] - Started processing new payments for serverID: 7
2014-06-26 16:26:11,548 [47 ] [INFO ][pool-1-thread-4] - Started processing new payments for serverID: 8
2014-06-26 16:26:11,548 [47 ] [INFO ][pool-1-thread-5] - Started processing new payments for serverID: 9
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-2] - Completed processing new payments for serverID: 6
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-5] - Completed processing new payments for serverID: 9
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-2] - Time taken to Process new payments for serverId 6 : 12 Sec
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-5] - Time taken to Process new payments for serverId 9 : 12 Sec
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-3] - Completed processing new payments for serverID: 7
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-1] - Completed processing new payments for serverID: 5
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-3] - Time taken to Process new payments for serverId 7 : 12 Sec
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-1] - Time taken to Process new payments for serverId 5 : 12 Sec
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-4] - Completed processing new payments for serverID: 8
2014-06-26 16:26:24,129 [12628 ] [INFO ][pool-1-thread-4] - Time taken to Process new payments for serverId 8 : 12 Sec
2014-06-26 16:26:24,129 [12628 ] [INFO ][main] - ShutDown complete
2014-06-26 16:26:24,129 [12628 ] [INFO ][main] - ProcessDeamon iteration finished in 0 Sec
2014-06-26 16:26:24,129 [12628 ] [INFO ][main] - ProcessDeamon iteration started
2014-06-26 16:26:24,191 [12690 ] [INFO ][pool-2-thread-1] - Started processing new payments for serverID: 5
2014-06-26 16:26:24,191 [12690 ] [INFO ][pool-2-thread-2] - Started processing new payments for serverID: 6
2014-06-26 16:26:24,191 [12690 ] [INFO ][pool-2-thread-3] - Started processing new payments for serverID: 7
2014-06-26 16:26:24,191 [12690 ] [INFO ][pool-2-thread-4] - Started processing new payments for serverID: 8
2014-06-26 16:26:24,191 [12690 ] [INFO ][pool-2-thread-5] - Started processing new payments for serverID: 9
2014-06-26 16:26:34,443 [22942 ] [INFO ][pool-2-thread-2] - Completed processing new payments for serverID: 6
2014-06-26 16:26:34,443 [22942 ] [INFO ][pool-2-thread-2] - Time taken to Process new payments for serverId 6 : 10 Sec
2014-06-26 16:26:34,490 [22989 ] [INFO ][pool-2-thread-4] - Completed processing new payments for serverID: 8
2014-06-26 16:26:34,490 [22989 ] [INFO ][pool-2-thread-3] - Completed processing new payments for serverID: 7
2014-06-26 16:26:34,490 [22989 ] [INFO ][pool-2-thread-5] - Completed processing new payments for serverID: 9
2014-06-26 16:26:34,490 [22989 ] [INFO ][pool-2-thread-4] - Time taken to Process new payments for serverId 8 : 10 Sec
2014-06-26 16:26:34,490 [22989 ] [INFO ][pool-2-thread-3] - Time taken to Process new payments for serverId 7 : 10 Sec
2014-06-26 16:26:34,490 [22989 ] [INFO ][pool-2-thread-5] - Time taken to Process new payments for serverId 9 : 10 Sec
2014-06-26 16:26:34,521 [23020 ] [INFO ][pool-2-thread-1] - Completed processing new payments for serverID: 5
2014-06-26 16:26:34,521 [23020 ] [INFO ][pool-2-thread-1] - Time taken to Process new payments for serverId 5 : 10 Sec
2014-06-26 16:26:34,521 [23020 ] [INFO ][main] - ShutDown complete
2014-06-26 16:26:34,521 [23020 ] [INFO ][main] - ProcessDeamon iteration finished in 0 Sec
2014-06-26 16:26:34,521 [23020 ] [INFO ][main] - ProcessDeamon iteration started
Do not shutdown your Threadpool but re-use it. That's the whole point in having a Threadpool: You submit Tasks into this pool and do not have to care about the thread-management. Just wait for your threads to terminate and submit the next batch of tasks into the same pool.